0

これの解決策をかなり長い間探しています:

お問い合わせフォームがあります。誰かがそれを介してメールを送信するたびに、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つは、それが今その境界を下回ったことを私に告げています。

これを機能させる方法はありますか?

4

1 に答える 1

1

たぶん、having句を追加します。あなたの例では

select ip, count(ip) as cnt from ContactWindow  group by ip having count(ip)>50
于 2011-09-19T20:54:37.920 に答える