JBoss Drools从DRL插入事实

时间:2011-02-15 12:06:48

标签: java memory rules drools fact

我需要我的WorkingMemory了解DRL中创建的事实如下:

rule "Your First Rule"
when
    $testRule : TestRule(count >= 100)
then 
    System.out.println("100 PACKETS");
end

有没有办法让WorkingMemory了解TestRule事实然后能够更新?我的目标是让规则知道何时收到了100个数据包。

1 个答案:

答案 0 :(得分:1)

通常我会创建一些作为规则的一部分并将其用作标志。如果您不需要创建任何内容,则可以创建一个标志,例如

rule "Your First Rule"
when
    $testRule : TestRule(count >= 100)
    not         Flag(id="packets")
then 
    System.out.println("100 PACKETS");
    insert( new Flag("packets") )
    update( $testRule )
end

我不认为这段代码是正确的,但我认为你可以得到这个想法......而且你需要创建一个名为Flag的类。需要更新来告诉drools必须更新rete树。