此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring AMQP 4.0.2spring-doc.cadn.net.cn

监听器容器队列

版本 1.3 引入了许多改进,以增强监听容器对多个队列的处理能力。spring-doc.cadn.net.cn

容器可以初始配置为监听零个队列。队列可以在运行时动态添加和移除。SimpleMessageListenerContainer 在任何预先获取的消息处理完毕后,会回收(取消并重新创建)所有消费者。DirectMessageListenerContainer 为每个队列单独创建/取消消费者,而不会影响其他队列上的消费者。请参阅 Javadoc 中关于 addQueuesaddQueueNamesremoveQueuesremoveQueueNames 方法的说明。spring-doc.cadn.net.cn

如果并非所有队列都可用,容器将每60秒尝试被动声明(并从中消费)缺失的队列。spring-doc.cadn.net.cn

此外,如果消费者从代理(例如,队列被删除时)接收到取消通知,该消费者会尝试恢复,恢复后的消费者将继续从任何其他已配置的队列中处理消息。之前,对某个队列的取消操作会导致整个消费者被取消,最终由于缺少队列,容器将停止运行。spring-doc.cadn.net.cn

如果您希望永久删除队列,应在删除队列之前或之后更新容器,以避免未来尝试从该队列中消费消息。spring-doc.cadn.net.cn