2

次のようにDRLで作成されるファクトを認識するためにWorkingMemoryが必要です。

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

WorkingMemoryにTestRuleファクトを認識させてから、更新できるようにする方法はありますか?私の目的は、100個のパケットがいつ受信されたかをルールに知らせることです。

4

1 に答える 1

2

通常、私はルールの一部として何かを作成し、それをフラグとして使用します。何も作成する必要がない場合は、たとえばフラグを作成できます

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というクラスを作成する必要があります。更新は、reteツリーを更新する必要があるdroolsに通知するために必要です。

于 2011-02-15T12:31:58.593 に答える