これの解決策をかなり長い間探しています:
お問い合わせフォームがあります。誰かがそれを介してメールを送信するたびに、ContactEvent(receiver、senderIpAddress)がEsperに発行されます。ここで、特定のIPアドレスが10分間に50を超える連絡先イベントを発行したときにEsperに通知してもらいたいと思います。
以下のコードの構文エラーは、コードの簡略化によるものです
create window ContactWindow.win:time(10 min) as select ipAddress, mail from ContactEvent
次に、次のように入力します。
insert into ContactWindow select ipAddress, mail from ContactEvent";
最終的には、次のようなイベントリスナーがいます。
select ip, count(ip) as cnt from ContactWindow group by ip
これは実際に機能します。私のステートメントリスナーは毎回発行されるので、IPアドレスのメッセージ数が変わるので、それは私が難しいと思うことではありません。(「IPXは過去10分間に43件のメッセージを送信しました」、「IP Xは過去10分間に44件のメッセージを送信しました」、...)「IPXは過去10分間に50件を超えるメッセージを送信しました」というイベントを1つだけ取得したい最後の10分」と別の1つは、それが今その境界を下回ったことを私に告げています。
これを機能させる方法はありますか?