这是我的规则:
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中的一个做出反应。我哪里错了?!
(智慧结束)
答案 0 :(得分:1)
不确定你的意思是“并且规则正在创建另一个TestRule实例”?
你有没有调用workingMemory.fileAllRules();更新后立即?