当队列长度为零时如何优雅地关闭通道和连接?

How to gracefully close channel and connection when Queue length reach Zero?

我们正在使用 Spring AMQP 库来使用来自 RabbitMQ 队列的消息。我们的发布者按照已知的时间表生成可变数量的消息,因此我们正在考虑按计划启动消费者并在队列为空后停止。

我想知道当队列长度为零时如何优雅地关闭通道和连接?

即将发布的 1.6 版本(release candidate was released last week, the GA is due at the end of next week) has a new feature to emit events when the listener container goes idle

您可以在收到此类事件时停止容器。您应该 停止调用事件侦听器的线程上的容器——而是将事件传递给新线程。如果您尝试在同一线程上停止容器,则会导致延迟,因为容器会等待线程被释放。