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

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


有没有一种方法可以让WorkingMemory知道TestRule的事实,然后可以对其进行更新?我的目标是让规则知道何时收到100个数据包。

最佳答案

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

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树。

09-11 19:19