82.10. 事件的内存管理


在流模式中,决策引擎使用自动内存管理来维护存储在 KIE 会话中的事件。决策引擎可以从 KIE 会话中重新遍历任何规则的事件,这些事件因为临时限制而不再匹配,并释放重新遍历事件保存的任何资源。

决策引擎使用显式或推断的过期事件来重新遍历过时的事件:

  • 显式过期 : 决策引擎移除在声明 @expires 标签的规则中明确设置的事件:

    带有显式过期的 DRL 规则片断

    declare StockPoint
      @expires( 30m )
    end

    这个示例规则将任何 StockPoint 事件设置为 30 分钟后过期,并在没有其他规则使用事件时从 KIE 会话中删除。

  • Inferred expiration: 决策引擎可以通过分析规则中的 temporal 约束来隐式计算给定事件的过期偏移:

    带有临时约束的 DRL 规则

    rule "Correlate orders"
    when
      $bo : BuyOrder($id : id)
      $ae : AckOrder(id == $id, this after[0,10s] $bo)
    then
      // Perform an action.
    end

    在本例中,决策引擎会自动计算每当出现 BuyOrder 事件时,决策引擎需要存储事件最多 10 秒并等待匹配的 AckOrder 事件。10 秒后,决策引擎会推断到期,并从 KIE 会话中删除事件。AckOrder 事件只能匹配现有的 BuyOrder 事件,因此如果没有匹配项并立即删除事件,则决策引擎会推断过期。

    决策引擎分析整个 KIE 基础,以查找每个事件类型的偏移,并确保没有其他规则使用正在等待移除的事件。每当带有显式过期值的隐式过期时,决策引擎会使用两个更大的时间帧来存储事件。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部