サードパーティのサイトからのコールバックを処理するサーブレット S があります。
コールバックの呼び出しは、特定の順序で発生します。したがって、それらをキューに入れる必要があります。
次のようなメモリ内キューを使用することを提案します
java.util.ConcurrentLinkedQueue
したがって、ロジックは次のようになります。
- サーブレット S はコールバックを受信し、受信したアイテムをキュー Q に入れます。
- この時点で、サーブレット S のインスタンスをホストしていたスレッドは終了しています。
- コンシューマ スレッドは Q から読み取り、それぞれを順次処理します。
私が理解しているように、サーブレット S の各インスタンスは独自のスレッドで実行されます。
Queue にサービスを提供する webapp (war) 全体に対して単一の Consumer Thread を作成するにはどうすればよいですか? 基本的に、次のシングルトン インスタンスが必要です。
- スレッドプール
- ConcurrentLinkedQueue