rabbitmq批量删除队列

有些时候,我们需要批量的删除rabbitmq中的队列,尤其是对于那些客户端配置了队列不存在时自动创建,但断开时不自动删除的应用来说。

rabbitmqctl并没有包含直接管理队列的功能,其提供的vhost粒度有时候过大以至于无法满足要求。rabbitmqadmin默认是没有随安装自带的。

在启用了rabbitmq management plugin之后,可以通过http://IP:15672/cli/下载rabbitmqadmin shell文件,linux/windows都可用curl,如下:

curl http://IP:15672/cli/rabbitmqadmin -o $RABBITMQ_HOME/sbin/rabbitmqadmin

chmod a+x *

此时就可以通过rabbitmqadmin删除队列,如下删除队列名含trdL字符串的队列:

rabbitmqadmin list queues name | awk '{print $2}' | grep "trdL" | xargs -I qn rabbitmqadmin delete queue name=qn

注意:rabbitmqadmin使用python作为脚本语言,所以需要确保主机环境安装了python 2.6以上。具体见http://www.rabbitmq.com/management-cli.html。

还有一种方式是通过policy进行设置队列1秒钟后过期,这也是可以的。

posted @ 2016-11-30 13:21  zhjh256  阅读(5037)  评论(0编辑  收藏  举报