監聽器容器佇列

1.3 版本引入了一些改進,用於處理監聽器容器中的多個佇列。

容器最初可以配置為監聽零個佇列。佇列可以在執行時新增和移除。SimpleMessageListenerContainer 在處理完任何預取訊息後,會回收(取消並重新建立)所有消費者。DirectMessageListenerContainer 會為每個佇列建立/取消獨立的消費者,而不影響其他佇列上的消費者。有關 addQueuesaddQueueNamesremoveQueuesremoveQueueNames 方法的詳細資訊,請參閱 Javadoc

如果並非所有佇列都可用,容器會每隔 60 秒嘗試被動宣告(並從中消費)丟失的佇列。

此外,如果消費者從 Broker 收到取消請求(例如,如果佇列被刪除),消費者會嘗試恢復,並且恢復後的消費者會繼續處理來自任何其他已配置佇列的訊息。以前,一個佇列上的取消會導致整個消費者被取消,最終容器會因缺少佇列而停止。

如果您希望永久移除某個佇列,您應該在刪除佇列之前或之後更新容器配置,以避免將來嘗試從中消費。