Java Drools规则结构
嗨,我是Drools fusion的新手,我一直在开发一些示例规则来了解Drools fusion的工作原理。 我需要一些帮助来理解口水Java Drools规则结构,java,drools,rule-engine,business-rules,drools-fusion,Java,Drools,Rule Engine,Business Rules,Drools Fusion,嗨,我是Drools fusion的新手,我一直在开发一些示例规则来了解Drools fusion的工作原理。 我需要一些帮助来理解口水 我的规则: rule "Sample Rule" when $t:Test (num == 10) from entry-point Stream then System.out.println($t.str); end Test是一个具有str字符串和num整数的类。 我需要通过某种关联触发事件,以便它不断插入
我的规则:
rule "Sample Rule"
when
$t:Test (num == 10) from entry-point Stream
then
System.out.println($t.str);
end
Test是一个具有str
字符串和num
整数的类。我需要通过某种关联触发事件,以便它不断插入测试对象并触发事件,因为这些对象的总和超过100,如: 规则“你的第一条规则” 我的代码是:
WorkingMemoryEntryPoint entryPoint1=ksession.getWorkingMemoryEntryPoint("Stream")
def eg=new Test()
eg.str="Test"
eg.num=10
EventFactHandle factHandle = (EventFactHandle)entryPoint1.insert(eg)
问题2:我想了解fireAllRules()
的工作原理。每次我将一个对象插入drools运行时(入口点或会话),我是否需要用这个方法触发
我希望你能理解我的处境。请提前帮助和感谢我不知道问题1应该是什么。我能看到那条线
($tmp>100)
语法错误;条件应该是前面模式的一部分,或者包含在eval()中
问题2:可以插入任意数量的事实并调用fireAllRules(),也可以在每次插入后调用fireAllRules()。但是,请注意,结果可能不同。考虑一个场景,一个规则一旦在一个X上触发,就移除事实X(),而另一个规则一旦出现了x()的两个事实,就会触发另一个规则。如果在每次插入后调用fireAllRules(),则第二条规则可能永远不会触发,能否添加一些eval()的示例
($tmp>100)