SpringとJSF2.0に基づいたアプリケーションを開発しています。特定のIPアドレスのクライアントが過去3分間にフォームを送信しようとした回数を覚えておく必要があります。3分間に3回を超える送信試行が記録された場合は、キャプチャが表示されます。
ConcurrentMap<String, ConcurrentLinkedQueue<Long>>
IPアドレス(String
)と送信時間(milis)をキュー( )に保存するために使用することを考えていますConcurrentLinkedQueue<Long>
。キューはQuartzによって3分間隔でクリーンアップされます(3分より古いミリスは削除されます)。キャプチャを表示するかどうかを確認するには、キューサイズが3より大きいかどうかを確認します。
これは正しいアプローチですか?もっと良いアイデアはありますか?