我正在运行测试,它会用消息填充RabbitMQ队列。我有多个vhost,每个主机都有多个队列,其中包含大量消息。我需要一个Powershell脚本,它可以简单地清除所有vhost的所有队列中的所有消息。已经有一个script for Python that purges all queues for a single vhost,但我想使用powershell,我想清除所有vhost的所有队列。
我不想删除队列或vhost,我只想清除队列中的所有消息。我使用的是RabbitMQ版本3.12.10。
有人有这样的剧本吗?
1条答案
按热度按时间vulvrdjw1#
我创建了一个基于on the 'rabbitmqctl' documentation.的powershell脚本该脚本使用3个
rabbitmqctl
命令:rabbitmqctl list_vhosts > vhosts.txt
获取所有vhost的列表并将列表存储到文件中。rabbitmqctl list_queues -p $vhost > queues.txt
获取给定vhost的所有队列的列表,并将队列名称存储到文件中。rabbitmqctl purge_queue -p $vhost $queueName
它为给定的vhost清除给定的队列。记得将RabbitMQ bin目录添加到您的环境Path变量,以便在powershell终端中启用
rabbitmqctl
。该脚本会过滤掉一些通用的JavaScript输出,因此根据您使用的RabbitMQ版本和您的环境,您可能需要修改该脚本才能为您工作。下面是脚本:
字符串