java - 在流口水中分别开火议程组

标签 java drools preload rule

我们正在使用 Drools 6。

我所有的规则分为两类,预取规则和主规则。

我想以某种方式首先触发所有用议程组“预取”定义的规则,然后在完成后触发议程组“mainRules”。

想知道,是否有可能做到这一点并在我们触发所有规则的情况下从外部单独触发议程组并仍然在两者之间共享上下文?

我在某处看到过“setAgendaFilter”方法,但我在无状态 session 中找不到它,不确定它是否已在 Drools 6 中删除。

谁能帮我解决这个问题?

PS.: 在组“prefetch”中的内部规则我们有“插入”,这样它会导致规则再次被触发,我不希望这导致触发组“mainRules”中的规则

最佳答案

使用 StatefulKnowledgeSession (5.x) 或 KieSession (6.x) kSession 或者你可以

kSession.getAgenda().getAgendaGroup( "prefetch" ).setFocus();
kSession.fireAllRules();
kSession.getAgenda().getAgendaGroup( "mainRules" ).setFocus();
kSession.fireAllRules();

放松,看着它们闪烁。

关于java - 在流口水中分别开火议程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21975213/

相关文章:

html - 如果本地不存在如何预加载字体?

java - 添加名称 |使用注释重命名 java 方法

java - 生成 int 列表以填充 JavaFX 中的 ComboBox

unit-testing - 你如何对 Jboss Rules (Drools) 规则进行单元测试?

javascript - 如何强制下载未使用的 CSS 图像?

html - 预加载器完成后如何启动Bootstrap动画?

java - 谁/什么实现了我可以直接使用的接口(interface)?

java - JDK 中可用的 MessageDigest 的完整列表

java - Drools 将另一个项目的规则添加到 kmodule 中?

java - 如何配置 Drools 与 JBOSS 一起运行?