JBoss Drools Working Memory有多个事实

时间:2011-02-15 17:46:14

标签: java jboss rules drools fact

这是我的规则:

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中的一个做出反应。我哪里错了?!

(智慧结束)

1 个答案:

答案 0 :(得分:1)

不确定你的意思是“并且规则正在创建另一个TestRule实例”?

你有没有调用workingMemory.fileAllRules();更新后立即?