Delete all the queues from RabbitMQ?
I installed rabbitmqadmin
and was able to list all the exchanges and queues. How can I use rabbitmqadmin
or rabbitmqctl
to delete all the queues.
Solution 1:
First, list your queues:
rabbitmqadmin list queues name
Then from the list, you'll need to manually delete them one by one:
rabbitmqadmin delete queue name='queuename'
Because of the output format, doesn't appear you can grep the response from list queues
. Alternatively, if you're just looking for a way to clear everything (read: reset all settings, returning the installation to a default state), use:
rabbitmqctl stop_app
rabbitmqctl reset # Be sure you really want to do this!
rabbitmqctl start_app
Solution 2:
Actually super easy with management plugin and policies:
-
Goto Management Console (localhost:15672)
-
Goto Admin tab
-
Goto Policies tab(on the right side)
-
Add Policy
-
Fill Fields
- Virtual Host: Select
- Name: Expire All Policies(Delete Later)
- Pattern: .*
- Apply to: Queues
- Definition: expires with value 1 (change type from String to Number)
-
Save
-
Checkout Queues tab again
-
All Queues must be deleted
-
And don't forget to remove policy!!!!!!.
Solution 3:
With rabbitmqadmin
you can remove them with this one-liner:
rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done
Solution 4:
Try this:
rabbitmqadmin list queues name | awk '{print $2}' | xargs -I qn rabbitmqadmin delete queue name=qn
Solution 5:
In Rabbit version 3.7.10 you can run below command with root permission:
rabbitmqctl list_queues | awk '{ print $1 }' | xargs -L1 rabbitmqctl delete_queue