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

Rabbitmq 当队列长度为零时,如何优雅地关闭通道和连接?,rabbitmq,amqp,spring-amqp,Rabbitmq,Amqp,Spring Amqp,我们正在使用Spring AMQP库来使用RabbitMQ中队列中的消息。我们的发布者根据已知的时间表生成数量可变的消息,所以我们考虑让使用者按时间表启动,并在队列为空时停止 我想知道,当队列长度达到零时,如何优雅地关闭通道和连接?即将发布的1.6版本(GA将在下周末发布)有一个 您可以在收到此类事件时停止容器。您应该而不是停止调用事件侦听器的线程上的容器-而是将事件传递给新线程。如果您试图在同一线程上停止容器,则会导致延迟,因为容器等待释放线程。即将发布的1.6版本(GA将在下周末发布)有一个

我们正在使用Spring AMQP库来使用RabbitMQ中队列中的消息。我们的发布者根据已知的时间表生成数量可变的消息,所以我们考虑让使用者按时间表启动,并在队列为空时停止

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

即将发布的1.6版本(GA将在下周末发布)有一个

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

即将发布的1.6版本(GA将在下周末发布)有一个延迟


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

谢谢!完美的解决方案!只是想知道SpringAMQP是如何检测空闲容器的?侦听器线程每
receiveTimeout
(默认情况下为1秒)唤醒一次,并检查自上次收到消息以来的时间。如果超过了
idleEventInterval
,则会发布事件。太棒了!再次感谢您的澄清!谢谢你,加里!完美的解决方案!只是想知道SpringAMQP是如何检测空闲容器的?侦听器线程每
receiveTimeout
(默认情况下为1秒)唤醒一次,并检查自上次收到消息以来的时间。如果超过了
idleEventInterval
,则会发布事件。太棒了!再次感谢您的澄清!