监听器容器队列
版本 1.3 引入了许多改进,用于在监听器容器中处理多个队列。
容器可以最初配置为监听零个队列。队列可以在运行时添加和删除。SimpleMessageListenerContainer
在所有预取的消息被处理后回收(取消并重新创建)所有消费者。DirectMessageListenerContainer
为每个队列创建/取消单个消费者,而不会影响其他队列上的消费者。有关 addQueues
、addQueueNames
、removeQueues
和 removeQueueNames
方法,请参阅 Javadoc。
如果并非所有队列都可用,容器会尝试每 60 秒被动声明(并从)缺少的队列。
此外,如果消费者从代理接收取消(例如,如果队列被删除),消费者会尝试恢复,并且恢复的消费者将继续处理来自任何其他已配置队列的消息。以前,一个队列上的取消会取消整个消费者,并且最终,容器会因为缺少队列而停止。
如果您希望永久删除队列,您应该在删除队列之前或之后更新容器,以避免将来尝试从该队列中消费。