23 个答案:
答案 0 :(得分:252)
首先,列出你的队列:
rabbitmqadmin list queues name
然后从列表中,您需要逐个手动删除它们:
rabbitmqadmin delete queue name='queuename'
由于输出格式不显示,您可以从list queues获取响应。或者,如果您只想找到清除所有内容的方法(阅读:重置所有设置,将安装恢复为默认状态),请使用:
rabbitmqctl stop_app
rabbitmqctl reset # Be sure you really want to do this!
rabbitmqctl start_app
答案 1 :(得分:46)
使用rabbitmqadmin,您可以使用此单行删除它们:
rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done
答案 2 :(得分:19)
试试这个:
rabbitmqadmin list queues name | awk '{print $2}' | xargs -I qn rabbitmqadmin delete queue name=qn
答案 3 :(得分:17)
使用管理插件和策略实际上超级简单:
转到管理控制台(localhost:15672)
转到“管理员”标签
转到策略标签(位于右侧)
添加政策
填充字段
虚拟主机:选择
名称::所有策略均过期(稍后删除)
模式:。*
应用于:队列
定义: 过期,值为1(将类型从“字符串”更改为“数字”)
保存
再次
结帐队列标签
必须删除所有队列
别忘了删除政策!!!!!。
答案 4 :(得分:8)
如果您没有安装rabbitmqadmin,请尝试使用rabbitmqctl清除队列:
rabbitmqctl list_queues | awk '{ print $1 }' | xargs -L1 rabbitmqctl purge_queue
答案 5 :(得分:6)
我创建了一个deleteRabbitMqQs.sh,它接受搜索队列列表的参数,只选择与你想要的模式匹配的参数。如果你不提供任何参数,它将全部删除它们!它会显示要删除的队列列表,让您在执行任