2011-07-29 11 views
0

これはかなり長時間の解決策を探します。Esper:特定のパラメータを持つイベントの数がしきい値を超えたときに通知します。

私はお問い合わせフォームを持っています。誰かがメールを送信するたびに、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アドレスのメッセージ数が変化するので、厳しいものではありません。 (「IP Xは最後の10分間に43個のメッセージを送信しました」、「IP Xは過去10分間に44個のメッセージを送信しました」など) 「IP Xは50を超えるメッセージです最後の10分で "、もう1つは、今、その国境の下に落ちたと言います。

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

答えて

1

having clauseを追加することがあります。あなたの例では

select ip, count(ip) as cnt from ContactWindow group by ip having count(ip)>50 
関連する問題