Рабочая память JBoss Drools несколько фактов - PullRequest
0 голосов
/ 15 февраля 2011

Это мое правило:

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);

Теперь я получаю 1 факт TestRule в WorkingMemory, и правило создает другой экземпляр TestRule. Я знаю, что я инстанцирую два факта TestRule, но реагирует только один в WorkingMemory. Куда я иду не так?!

(Wits End)

1 Ответ

1 голос
/ 16 февраля 2011

Не уверен, что вы подразумеваете под "и правило создает другой экземпляр TestRule"?

Вы звонили workingMemory.fileAllRules ();сразу после обновления?

...