For the latest stable version, please use Spring AMQP 3.2.0!spring-doc.cn

Listener Container Queues

Version 1.3 introduced a number of improvements for handling multiple queues in a listener container.spring-doc.cn

Container can be initially configured to listen on zero queues. Queues can be added and removed at runtime. The SimpleMessageListenerContainer recycles (cancels and re-creates) all consumers when any pre-fetched messages have been processed. The DirectMessageListenerContainer creates/cancels individual consumer(s) for each queue without affecting consumers on other queues. See the Javadoc for the addQueues, addQueueNames, removeQueues and removeQueueNames methods.spring-doc.cn

If not all queues are available, the container tries to passively declare (and consume from) the missing queues every 60 seconds.spring-doc.cn

Also, if a consumer receives a cancel from the broker (for example, if a queue is deleted) the consumer tries to recover, and the recovered consumer continues to process messages from any other configured queues. Previously, a cancel on one queue cancelled the entire consumer and, eventually, the container would stop due to the missing queue.spring-doc.cn

If you wish to permanently remove a queue, you should update the container before or after deleting to queue, to avoid future attempts trying to consume from it.spring-doc.cn