監聽器容器佇列

1.3 版本針對在監聽器容器中處理多個佇列引入了許多改進。

容器最初可以設定為監聽零個佇列。佇列可以在運行時添加和移除。當任何預先提取的訊息被處理完畢時,SimpleMessageListenerContainer 會回收(取消並重新建立)所有消費者。DirectMessageListenerContainer 會為每個佇列建立/取消個別的消費者,而不會影響其他佇列上的消費者。請參閱 Javadoc 中關於 addQueuesaddQueueNamesremoveQueuesremoveQueueNames 方法的說明。

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

此外,如果消費者收到來自 Broker 的取消(例如,如果佇列被刪除),消費者會嘗試恢復,並且恢復後的消費者會繼續處理來自任何其他已設定佇列的訊息。先前,一個佇列上的取消會取消整個消費者,最終,容器會因遺失的佇列而停止。

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