リスナーコンテナーキュー

バージョン 1.3 では、リスナーコンテナーで複数のキューを処理するための多くの改善が導入されました。

コンテナーは、ゼロキューでリッスンするように最初に構成できます。実行時にキューを追加および削除できます。SimpleMessageListenerContainer は、プリフェッチされたメッセージが処理されると、すべてのコンシューマーをリサイクル (キャンセルして再作成) します。DirectMessageListenerContainer は、他のキューのコンシューマーに影響を与えることなく、キューごとに個別のコンシューマーを作成 / キャンセルします。addQueuesaddQueueNamesremoveQueuesremoveQueueNames メソッドについては、Javadoc を参照してください。

すべてのキューが使用可能ではない場合、コンテナーは 60 秒ごとに不足しているキューを受動的に宣言 (および消費) しようとします。

また、コンシューマーがブローカーからキャンセルを受け取った場合 (キューが削除された場合など)、コンシューマーは回復を試み、回復されたコンシューマーは他の構成済みキューからのメッセージの処理を続行します。以前は、1 つのキューをキャンセルするとコンシューマー全体がキャンセルされ、最終的にはキューが見つからないためにコンテナーが停止していました。

キューを完全に削除したい場合は、キューを削除する前または後にコンテナーを更新して、今後それから消費しようとする試みを避ける必要があります。