リスナーコンテナーキュー
バージョン 1.3 では、リスナーコンテナーで複数のキューを処理するための多くの改善が導入されました。
コンテナーは、ゼロキューでリッスンするように最初に構成できます。実行時にキューを追加および削除できます。SimpleMessageListenerContainer
は、プリフェッチされたメッセージが処理されると、すべてのコンシューマーをリサイクル (キャンセルして再作成) します。DirectMessageListenerContainer
は、他のキューのコンシューマーに影響を与えることなく、キューごとに個別のコンシューマーを作成 / キャンセルします。addQueues
、addQueueNames
、removeQueues
、removeQueueNames
メソッドについては、Javadoc を参照してください。
すべてのキューが使用可能ではない場合、コンテナーは 60 秒ごとに不足しているキューを受動的に宣言 (および消費) しようとします。
また、コンシューマーがブローカーからキャンセルを受け取った場合 (キューが削除された場合など)、コンシューマーは回復を試み、回復されたコンシューマーは他の構成済みキューからのメッセージの処理を続行します。以前は、1 つのキューをキャンセルするとコンシューマー全体がキャンセルされ、最終的にはキューが見つからないためにコンテナーが停止していました。
キューを完全に削除したい場合は、キューを削除する前または後にコンテナーを更新して、今後それから消費しようとする試みを避ける必要があります。