0

Drools-fusion は初めてです。以下の条件でルールを書きたいと思います。

  1. イベント データは、「eventId」と「state」という名前の 2 つの属性を持つ drools エンジンに定期的に送られます。元:-"data":{"eventId":"evet123","state":1}
  2. 初めてイベントが発生すると、ワーキングメモリに保存されます。
  3. 最初のイベントの後、そのイベントの状態が前のイベントとチェックされ、前のイベントの状態が 1 で現在のイベントの状態が 2 である場合、そのイベントの後に何らかの関数が実行されます。現在のイベントは、作業メモリ内の前のイベントに置き換えられます。

例:- if(前のイベント状態が 1 ---> 現在のイベント状態が 2) その後、関数を呼び出します

注:- eventId は一意ではありません。前のイベントと同じかもしれませんし、違うかもしれません。

(このシーンでは長さベースのスライディング ウィンドウを使用している可能性がありますが、ルールでこの要件を変換する方法を知りませんでした。)

よだれの専門家がこの問題について私を案内してください。

4

1 に答える 1

0

あなたが何を言おうと、あなたが説明しているのはイベントの奇妙なシーケンスです: 最初のイベントは状態 1 を持ち、その後のすべてのイベントは状態 2 を持ちます。

rule match12
when
  $e1: Event( $id: id, state == 1 )
  $e2: Event( id == $id, state == 2 )
then
  retract( $e1 );
  modify( $e2 ){ setState( 1 ) }
end
于 2014-02-26T12:23:15.000 に答える