3

現在、siddhi wso2 cep をテストしています。

ウィンドウ (時間ウィンドウなど) に蓄積されたデータを失うことなく、wso2 サーバー プロセスを再起動できる必要があります。

状態を失うことなくサーバーを再起動できるように、タイム ウィンドウを永続化する方法はありますか?

永続性を使用するようにサーバーを構成する必要がありますか?

それとも、クエリを変更してイベント テーブルを使用するだけでよいのでしょうか。

クエリのサンプルを次に示します。

from every data= DataInStream[state == 1] -> 
   every event = EventInStream[event.no == data.no] within 24h
       insert into duplicatesOutStream data.id as id
4

1 に答える 1

4

スナップショットを有効にすることで、CEP の状態を維持できます。ドキュメントはここにあります。ただし、これにより CEP の「状態全体」が「定期的に」保持されることに注意してください (数分で構成可能)。これは定期的にのみ行われるため、最後のスナップショット操作の後に到着した最新のいくつかのイベントが失われる可能性があります。クラッシュ後に cep を回復させたい場合は、これが最も簡単なオプションです。

これ以外に、事前定義されたウィンドウを永続化する方法はありません。ただし、必要に応じて、永続化を行い、CEP にプラグインする独自のカスタム タイム ウィンドウ (ドキュメント) を作成できます。

代わりにイベント テーブルを使用することもできます。イベント テーブルを使用すると、到着したすべてのイベントが永続化されていることを確認できます。(ただし、このアプローチの欠点の 1 つは、Windows + スナップショットのアプローチと比較して、パフォーマンスが低下する可能性があることです)。

于 2013-12-04T07:39:43.320 に答える