最後の発火から少なくとも 15 分経過するまで発火を遅らせるルールを書こうとしています。ただし、Drools Fusion のテンポラル オペレーターは、現在の時間に関連する 1 つのイベントではなく、相互に関連する 2 つのイベントについてのみ推論できます。
私はこのようなものが欲しいです:
rule "some rule"
when
not LastFiredEvent(this before[0m, 15m] NOW)
…
毎秒起動し、ハートビート イベントを挿入する (以前のハートビートも取り消す) ルールを作成することにしました。これを他のルールで使用して、現在の時刻として使用できます。
これはかなり洗練されていないと思います。何か足りないのでしょうか、それとも Drools Fusion にはこれに対する何かが本当にありませんか?
注意。ルールの遅延起動や、15 分の倍数でのみ起動できるルールを探しているわけではありません。過去 17 分間に何も起こらなかった場合、ルールは新しいイベントに応答してすぐに起動する必要があります。