这是我的规则:
rule "Your First Rule"
when
$testRule : TestRule(count >= 100)
then
System.out.println("100 PACKETS!");
end
这是我创建RuleBase和WorkingMemory的方法:
public void invokeRules(){
RuleBase ruleBase = readRule(); \\creates ruleBase from DRL package
workingMemory = ruleBase.newStatefulSession();
testRule = new TestRule();
factHandle = workingMemory.insert(testRule);
workingMemory.fireAllRules();
}
我有一个更新部分:
workingMemory.update(factHandle, testRule);
我现在在WorkingMemory中得到1个TestRule事实,并且该规则正在创建另一个TestRule实例。我知道我实例化了两个TestRule事实,但是WorkingMemory中只有一个发生了反应。我要去哪里错了?
(束手无策)
最佳答案
不确定“规则正在创建另一个TestRule实例”是什么意思?
您是否调用workingMemory.fileAllRules();更新后立即进行?
关于java - JBoss Drools Working Memory的多个事实,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5007343/