0

这是我的规则:

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

(束手无策)

4

1 回答 1

1

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

你打电话给workingMemory.fileAllRules(); 更新后立即?

于 2011-02-15T21:47:49.227 回答