RabbitMQ如何清除队列
RabbitMQ如何清除队列
进入控制台
首先定位到 rabbitMQ 安装目录的sbin 目录下,然后shift+右键,调出右键菜单,选择在此处打开命令窗口,打开一个cmd窗口
查看所有队列:rabbitmqctl list_queues
方式一:rabbitmqctl reset
该方式需要执行如下命令:
rabbitmqctl stop_app -> rabbitmqctl reset -> rabbitmqctl start_app
说明:
- rabbitmqctl stop_app - 关闭应用
- rabbitmqctl reset - 清除队列中的消息
- rabbitmqctl start_app - 再次启动此应用
查看是否清空:
最后,再次执行命令:rabbitmqctl list_queues。这次可以看到 listing 及 queues都是空的。
注意:
1)使用此命令前,要先关闭应用(rabbitmqctl stop_app),否则不能清除
2) 这种方式不仅会清空消息,还会清空所有配置信息,需要谨慎使用
方式二:rabbitmqctl delete_queue
说明: 该方式就是将队列删除,重新建一个
1)删除单个queue
rabbitmqctl delete_queue queue_name
2) 提供批量删除queue
RabbitMQ没有提供批量删除queue的命令或功能,但是有提供列出所有队列名称以及删除单个queue的功能。
我们可以借助Linux的xargs命令来批量删除指定的queue:
1 #删除以hello开头的queue 2 #由于list_queues会列出队列名称以及对应的消息数目,需要过滤掉消息数目,配合awk命令只取第1列 3 rabbitmqctl list_queues| grep ^hello | awk '{print $1}' | xargs -n1 rabbitmqctl delete_queue