我正在通过单个进程(多重处理)启动Rabbitmq使用者(相同队列)的多个实例。在中断时,我希望所有使用者正常关闭。我的意思是,如果从队列中获取的进程已经在运行,请让它完成,然后停止使用更多的请求并停止队列。
有没有办法知道队列是否正在执行某件事,然后等待它完成然后停止队列?
答案 0 :(得分:0)
RabbitMQ团队监视the rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。
有没有办法知道队列是否正在执行某件事,然后等待它完成然后停止队列?
不,没有办法知道这一点。您应该使用消息确认。当您希望停止消费时,可以调用basic_cancel
,然后退出该消费过程。 RabbitMQ只将那些邮件视为已确认已传递,因此您不必担心丢失邮件。