監聽器容器佇列
版本 1.3 引入了許多改進,用於處理監聽器容器中的多個佇列。
容器最初可以配置為監聽零個佇列。佇列可以在執行時新增和刪除。SimpleMessageListenerContainer 會在處理完任何預取訊息後回收(取消並重新建立)所有消費者。DirectMessageListenerContainer 會為每個佇列建立/取消單獨的消費者,而不會影響其他佇列上的消費者。請參閱 addQueues、addQueueNames、removeQueues 和 removeQueueNames 方法的 Javadoc。
如果並非所有佇列都可用,容器會每 60 秒嘗試被動宣告(並從其中消費)缺失的佇列。
此外,如果消費者從代理接收到取消(例如,如果佇列被刪除),消費者會嘗試恢復,並且恢復的消費者會繼續處理來自任何其他配置佇列的訊息。以前,一個佇列上的取消會取消整個消費者,最終,容器會因缺失佇列而停止。
如果您希望永久刪除一個佇列,您應該在刪除佇列之前或之後更新容器,以避免將來嘗試從中消費。