我们正在使用Spring AMQP库来使用RabbitMQ中来自队列的消息。我们的发布者在已知的时间表上生成可变数量的消息,因此我们正考虑按计划启动消费者,并在Queue为空时停止。
我想知道当队列长度达到零时如何优雅地关闭通道和连接?
答案 0 :(得分:4)
即将发布的1.6版本(release candidate was released last week,GA将在下周末到期)有new feature to emit events when the listener container goes idle。
收到此类事件后,您可以停止容器。您应该不停止调用事件侦听器的线程上的容器 - 而是将事件传递给新线程。如果您尝试在同一个线程上停止容器,则会导致延迟,因为容器会等待释放该线程。