问题描述
如何使用 NodeJs (amqplib) 获取 RabbitMQ 队列的未确认消息计数。
我们可以使用 checkQueue
或 assertQueue
方法轻松获取队列的总消息数。
我有很多动态队列,这些队列被多个消费者消费,我想在处理完所有作业后删除队列。
问题是当消费者附加到队列时,我检查消息计数是否为零,如果消息计数为零,则我删除队列,但当时如果该队列有一些未确认的消息,但消息计数为零,那么我该如何处理。
解决方法
在这种情况下,您可以将 auto-delete flag 设置为在创建时排队并在使用时检查队列大小。
当队列大小为 0 时,您只需停止此消费者的消费进程并关闭此消费者的通道。当所有消费者关闭他们的通道队列时,RabbitMQ 将自动删除。