rabbitmqctl list_queues name messages messages_ready \ messages_unacknowledged
You can use rabbitmqctl eval as below:html
rabbitmqctl eval 'IfUnused = false, IfEmpty = true, MatchRegex = <<"^prefix-">>, [rabbit_amqqueue:delete(Q, IfUnused, IfEmpty) || Q <- rabbit_amqqueue:list(), re:run(element(4, element(2, Q)), MatchRegex) =/= nomatch ].'
The above will delete all empty queues in all vhosts that have a name beginning with "prefix-". You can edit the variables IfUnused, IfEmpty, and MatchRegex as per your requirement.bash
If you're trying to delete queues because they're unused and you don't want to reset, one option is to set the queue TTL very low via a policy, wait for the queues to be auto-deleted once the TTL is passed and then remove the policy (https://www.rabbitmq.com/ttl.html).app
rabbitmqctl.bat set_policy delq ".*" '{"expires": 1}' --apply-to queues
To remove the policycurl
rabbitmqctl clear_policy delq
Note that this only works for unused queuesui
Original info here: http://rabbitmq.1065348.n5.nabble.com/Deleting-all-queues-in-rabbitmq-td30933.htmlthis
A short summary for quick queue deletion with all default values from the host that is running RMQ server:url
curl -O http://localhost:15672/cli/rabbitmqadmin chmod u+x rabbitmqadmin ./rabbitmqadmin delete queue name=myQueueName
To delete all queues matching a pattern in a given vhost (e.g. containing 'amq.gen' in the root vhost):spa
rabbitmqctl -p / list_queues | grep 'amq.gen' | cut -f1 -d$'\t' | xargs -I % ./rabbitmqadmin -V / delete queue name=%