スタンドアロン ライブラリとして Siddhi CEP 3.0.2 を使用しています。連続するイベントを関連付けて変更を検出するために、以下のストリームとクエリ定義を使用した単一の実行プランがあります。カスタム関数呼び出しを呼び出しています。ストリーム定義で言及されているオブジェクト属性は、カスタム Java オブジェクトおよび java.util.Map オブジェクト タイプです。
すべてのイベントが定期的に 5 分間発生すると、CPU 使用率が 1 秒間で約 40% から 50% に達し、徐々に低下することがわかりました。しかし、この CPU 使用率は 5 分ごとに増加しています。
パターン クエリの使用方法に問題があります。これについて何か助けはありますか?
define stream portStream (source string,seq long, portInfo object);
define stream deviceStream (source string,seq long, deviceinfo object);
partition with (source of portstream, source of deviceStream) begin " +
@info(name = 'query1')
from (every e1= portStream->e2=portStream[e1.seq != e2.seq]) within 6 min "+
select e2.seq as currSeq, e1.source,
custom:findPortStatus(e1.portInfo, e2.portInfo) as affecteddata "
insert into portStatusStream;
@info(name = 'query2’)
from (every e1=deviceStream-> e2=deviceStream [seq!=e1.seq]) within 6 min
select e2.seq as curSeq, custom:findDeviceStatus(e1.deviceinfo,e2.deviceinfo)
as affectedDeviceInfo
insert into dStatusChangedStream; "
end;