85.10. 事件的内存管理


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

决策引擎使用显式或推断的过期日期来改变过时的事件:

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

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

    declare StockPoint
      @expires( 30m )
    end
    Copy to Clipboard Toggle word wrap

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

  • Inferred 过期: 决定引擎通过分析规则中的临时限制来隐式计算给定事件的过期偏移:

    具有临时限制的 DRL 规则

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

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

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat