我安装了rabbitmqadmin,并且能够列出所有的交换机和队列。如何使用rabbitmqadmin或rabbitmqctl删除所有的队列。


当前回答

这是我使用的方法。它简单、清晰、有效。 文件如下:

Vhost=the_vhost_name
User=user_name
Password=the_passworld

for i in `rabbitmqctl list_queues -p $Vhost |  awk '{ print $1 }'`
do
    echo "queu_name: $i"
    curl  -u $User:$Passworld -H "content-type:application/json"  -XDELETE http://localhost:15672/api/queues/$Vhost/$i
done 

其他回答

我尝试了上面的代码段,但我没有做任何流。

Sudo rabbitmqctl list_queues | awk '{print $1}' > queues.txt;对于$(cat queue .txt)中的行;执行sudo rabbitmqctl delete_queue "$line";完成了。

我生成一个包含所有队列名称的文件,并逐行循环删除它们。对于循环,当读取…不是为了我。它总是在第一个队列名处停止。

使用rabbitmqadmin,你可以用下面的一行程序删除它们:

rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done

下面的命令对我有用:

sudo rabbitmqctl list_queues | awk '{print $1}' | xargs -I qn sudo rabbitmqctl delete_queue qn

这是我使用的方法。它简单、清晰、有效。 文件如下:

Vhost=the_vhost_name
User=user_name
Password=the_passworld

for i in `rabbitmqctl list_queues -p $Vhost |  awk '{ print $1 }'`
do
    echo "queu_name: $i"
    curl  -u $User:$Passworld -H "content-type:application/json"  -XDELETE http://localhost:15672/api/queues/$Vhost/$i
done 

如果安装rabbitmqadmin有问题,请先安装python。

类unix操作系统用户需要将rabbitmqadmin复制到PATH中的某个目录,例如/usr/local/bin。

Windows用户将需要确保Python在他们的PATH上,并调用rabbitmqadmin作为Python .exe rabbitmqadmin。

然后

浏览http://{hostname}:15672/cli/rabbitmqadmin进行下载。 进入包含的文件夹,然后以管理员权限运行cmd

列出队列 Python rabbitmqadmin列表队列。

删除队列 python rabbitmqadmin删除队列名称=队列名称

删除所有队列

1-声明政策

python rabbitmqadmin declare policy name='expire_all_policies' pattern=.* definition={\"expires\":1} apply-to=queues

2-删除策略

python rabbitmqadmin  delete policy name='expire_all_policies'