Drools规则测试全局初始化

时间:2012-12-06 10:48:35

标签: java global drools

说我在drl中有以下drools规则

global java.lang.Boolean test;
rule "Initialize global"
salience 1000
when
then drools.workingmemory.setGlobal("test", new Boolean(true))
end

这可以按预期工作,但我也不希望每次都触发规则,所以我想添加检查是否已经初始化全局测试,如果没有,则设置它,否则,不要触发规则。你会怎么做?

我相信我也需要无循环的真实。 谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

使用不带约束的规则是初始化规则的常见模式。您拥有的规则每个会话只执行一次,因此不必担心重新执行。 关于无循环,因为规则中没有任何条件,因此无法重新激活。当您在RHS中使用modify()或update()时,使用无循环来避免递归激活。

最好的问候'