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