清理rabbitmq队列

清理rabbitmq队列

如何清理(删除)rabbitmq 队列中的消息?
我使用的是 Ubuntu 14.04 和 rabbitmq-server 3.2.4-1

例子:

# rabbitmqctl list_queues -p openstack
Listing queues ...
...
notifications.info      372
...

答案1

例如:

sudo apt-get install amqp-tools
amqp-delete-queue -q name_from_queue

在此链接中您可以有更多选项: https://stackoverflow.com/questions/5313027/rabbitmq-how-do-i-delete-all-messages-from-a-single-queue

答案2

有没有办法在不删除队列的情况下清理队列?

是的,这叫做清除队列,并且有很多方法可以做到这一点。

这是因为除了可以使用指向rabbitmqadmin代理的工具执行的操作之外,它还是一种可直接从协议访问的操作。因此,人们可以使用queue.purgeC++ 和 Python 等多种语言编写并执行队列名称和方法的工具。

Ubuntu amqp-utils 包这类工具有点少,但你不需要费力就能找到类似的东西Doug Barth 的 amqp-utils 工具集用 Ruby 编写并包含一个amqp-purge实用程序。

语法rabbitmqadmin是:

rabbitmqadmin 清除队列队列名称

进一步阅读

答案3

如果这是 Rabbit 的常见操作,那么我们应该在 juju charm 中添加一个操作,这样就可以轻松地远程调用它,而无需登录系统。Juju 还会确保在系统上没有其他事情发生时完成此操作(显然是从操作/部署角度来看)。

相关内容