java - 如何在StatelessKieSession中设置AgendaGroup 流口水

标签 java drools rule-engine

我有一个场景,我想将 StatelessKieSession 与议程组一起使用。 StatelessKieSession 没有任何方法可以像普通 KieSession 一样将焦点设置在特定的 AgendaGroup 上,如下所示

KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
KieSession kSession = kContainer.newKieSession();
kSession.getAgenda().getAgendaGroup("us").setFocus();

如何使用StatelessKieSession将焦点设置在特定的议程组上?

最佳答案

您可以使用 drl 文件中的 drools.setFocus() 方法在 StatelessKieSession 中设置 Agendagroup。您必须显式执行的一件事是在 Fact 对象中声明一个变量,并为该变量分配议程组名称。示例规则如下:

规则“全局” 显着性 100 什么时候 $rec : 事实对象() 然后 drools.setFocus($rec.getAgendaValue()); 结束

为此规则赋予较高的显着性值,以便它首先执行。检查this博客。他们正在做与您正在尝试做的相同的事情。

关于java - 如何在StatelessKieSession中设置AgendaGroup 流口水,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50396587/

相关文章:

Azure CDN : wildcard in rules engine

java - 如何避免工厂模式中的 Java 泛型警告

java - 我可以使用每次迭代移动 1 个新位的 for 循环来获取 Java 中的某个 8 位数字吗?

java - 嵌套循环内递增

java - Drools 未按预期工作。规则不适用

流口水-根据名称获取规则的内容?

java - ZooKeeper - 一个或多个客户端与 ZooKeeper 失去连接后的客户端协调

java - 使用 HttpUrlConnection 测试 URL 仅适用于前面有 www 的情况

java - 在 drool 中维护单独的规则文件

java - 为什么使用规则引擎而不是易于理解的一行属性?