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秒钟后过期,这也是可以的。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM