1

過去 10 秒間にストリームで受信した Fact の数が特定の基準に一致するかどうかをカウントするルールを作成する必要があります。

たとえば、最後の 10 秒間に 2 台の黒い車が交差点を通過した場合、誰かに警告したいと思います。

次のルールがあります。

rule "check black cars in 10 seconds" dialect "java"
when

    $car : Car(color == Color.BLACK) over window:time(10s);
then

    System.out.println("got something");

これは黒い車を通過するときに機能しますが、黒い車が2台ない限り発火したくありません。これの良い例が見つかりません。

ありがとう。

4

1 に答える 1

1
when
accumulate( Car(color == Color.BLACK) over window:time(10s);
            $cnt: count(1); $cnt == 2 )
then

これは、2 番目の車が 1 番目の車から 10 秒以内に到着した場合、および 3 番目の車が 2 番目の車から 10 秒以内に到着したが、1 番目の車から 10 秒以内に到着した場合に発生しますが、それはあなたの (あいまいな)仕様。

于 2014-02-15T18:17:07.357 に答える