当前位置: 首页 > 知识库问答 >
问题:

DROOLS:规则事件

吴唯
2023-03-14

我的问题是:

在Drools规则中,有没有一种方法可以拦截“成功”事件?为了更好地解释。。。有一种方法可以在规则的所有条件都为真时调用侦听器?

注意:我不想设置一个全局对象(在会话上)来管理规则的“然后”子句中的这个条件。

我正在寻找一个已经在Drools上实现的解决方案

规则示例

when
    $p : Person(name == "James")  
then
      // implicit callback to the listener managed by drools

共有1个答案

宗政才俊
2023-03-14

在包<代码>组织中。kie。应用程序编程接口。事件规则有在MatchFiredevent之前和在MatchFiredevent之后。使用方法实现接口AgendaEventListener,方法为:void aftermatchfirefired(AfterMatchFiredEvent事件)和/或void beforematchfirefired(BeforeMatchFiredEvent事件)。

通过评估随事件参数传递的数据,可以了解触发的规则和参与的事实。

 类似资料:
  • 我有一个多用途的传感器,每个传感器发送计步器数据。我有一个基于macAddress的规则文件,触发规则: My User只有一个字段,Steps事件有以下字段: 现在,当我为每个macAddress插入一个事件时,如果在过去一小时内使用该macAddress的用户的步骤数少于50,则规则将触发。因此,如果满足此条件,则该规则将为每个macAddress触发。但我希望规则只能为插入的步骤事件的mac

  • 这篇文章建议添加一些事实类作为嵌套规则的一种方式。http://drools.46999.n3.nabble.com/How-can-I-nested-rules-td4020488.html#a4020681 我想知道的是——有没有保证“年龄和性别女性”在“怀孕”之前执行,“怀孕”在“怀孕2”之前执行?据我所知,我的申请中总是这样。但是,它是记录在口水留档的某个地方,还是只是等待倒塌的纸牌屋?

  • 我对drools和KIE服务器是新手。我遇到了一个问题,即如何通过触发规则RHS(then action)在工作记忆中插入新的事实,然后通过这些动态插入的事实激活其他规则。 我所期望的是,当BaseFeature从外部插入工作内存并激活RuleOne时,在RuleOne内部“然后”它将插入新的事实RuleResult,并希望激活RuleTwo,但它没有激活RuleTwo,只是RuleOne被激活了

  • 我正在向drools规则引擎插入数据,但我无法理解它是如何处理插入的数据的。插入数据的代码是:

  • 我们使用的是Drools Planner 5.4.0。我们希望对java应用程序进行概要分析,以了解是否可以提高性能。是否有一种方法可以描述一个规则需要评估多少时间?我们使用了很多eval(....)我们的“平均每秒计算次数”接近37。删除所有eval(...)我们的“平均每秒计算次数”保持不变。