这是我的规则:

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/

10-11 02:32