Tcp RabbitMQ";“僵尸”;消费者

Tcp RabbitMQ";“僵尸”;消费者,tcp,rabbitmq,amqp,Tcp,Rabbitmq,Amqp,我使用EC2上的spot实例从RabbitMQ队列中使用。每个作业都需要几秒钟,并且需要手动“确认” 实例终止时会出现问题。没有时间彻底关闭AMQP消费者,因此我只能让RabbitMQ服务器认为死去的消费者仍然存在。它不会重新提供他们的工作,它仍然会为他们提供新的工作 如何让RabbitMQ自动超时僵尸使用者并将其从工作池中删除?我建议在RabbitMQ连接上设置属性。如果心跳停止,RabbitMQ将最终切断连接并将未确认的消息放回队列。我与您在同一位置,并通过在使用者端设置连接心跳属性(Nod

我使用EC2上的spot实例从RabbitMQ队列中使用。每个作业都需要几秒钟,并且需要手动“确认”

实例终止时会出现问题。没有时间彻底关闭AMQP消费者,因此我只能让RabbitMQ服务器认为死去的消费者仍然存在。它不会重新提供他们的工作,它仍然会为他们提供新的工作


如何让RabbitMQ自动超时僵尸使用者并将其从工作池中删除?

我建议在RabbitMQ连接上设置属性。如果心跳停止,RabbitMQ将最终切断连接并将未确认的消息放回队列。

我与您在同一位置,并通过在使用者端设置连接心跳属性(Node.Js使用Node_amqp module)来解决它。连接和“僵尸”消费者一起关闭和删除。未确认的作业返回到就绪状态