Cor*_*ory 179 rabbitmq rabbitmqctl
我安装rabbitmqadmin并能够列出所有的交换和队列.我如何使用rabbitmqadmin或rabbitmqctl删除所有队列.
luk*_*fer 263
首先,列出你的队列:
rabbitmqadmin list queues name
然后从列表中,您需要逐个手动删除它们:
rabbitmqadmin delete queue name='queuename'
由于输出格式,没有出现你可以grep响应list queues.或者,如果您只是想要清除所有内容的方法(请参阅:重置所有设置,将安装恢复为默认状态),请使用:
rabbitmqctl stop_app
rabbitmqctl reset # Be sure you really want to do this!
rabbitmqctl start_app
Run Code Online (Sandbox Code Playgroud)
adm*_*nva 48
有了rabbitmqadmin你可以用这一个班轮将其删除:
rabbitmqadmin -f tsv -q list queues name | while read queue; do rabbitmqadmin -q delete queue name=${queue}; done
Run Code Online (Sandbox Code Playgroud)
Mes*_* A. 33
实际上管理插件和政策非常简单:
转到管理控制台(localhost:15672)
转到" 管理"选项卡
转到政策选项卡(在右侧)
添加政策
填充字段
保存
Gat*_*ole 19
试试这个:
rabbitmqadmin list queues name | awk '{print $2}' | xargs -I qn rabbitmqadmin delete queue name=qn
Run Code Online (Sandbox Code Playgroud)
小智 15
在 Rabbit 3.7.10 版本中,您可以使用 root 权限运行以下命令:
rabbitmqctl list_queues | awk '{ print $1 }' | xargs -L1 rabbitmqctl delete_queue
Run Code Online (Sandbox Code Playgroud)
如果您没有安装rabbitmqadmin,请尝试使用rabbitmqctl清除队列:
rabbitmqctl list_queues | awk '{ print $1 }' | xargs -L1 rabbitmqctl purge_queue
我创建了一个deleteRabbitMqQs.sh,它接受搜索队列列表的参数,只选择与你想要的模式匹配的参数.如果你不提供任何参数,它将全部删除它们!它会显示要删除的队列列表,让您在执行任何破坏性操作之前退出.
for word in "$@"
do
args=true
newQueues=$(rabbitmqctl list_queues name | grep "$word")
queues="$queues
$newQueues"
done
if [ $# -eq 0 ]; then
queues=$(rabbitmqctl list_queues name | grep -v "\.\.\.")
fi
queues=$(echo "$queues" | sed '/^[[:space:]]*$/d')
if [ "x$queues" == "x" ]; then
echo "No queues to delete, giving up."
exit 0
fi
read -p "Deleting the following queues:
${queues}
[CTRL+C quit | ENTER proceed]
"
while read -r line; do
rabbitmqadmin delete queue name="$line"
done <<< "$queues"
Run Code Online (Sandbox Code Playgroud)
如果要对传入的参数进行不同的匹配,可以在第4行中更改grep.当删除所有队列时,它不会删除其中有三个连续空格的队列,因为我认为可能性比使用rabbitmqctl以不同语言打印输出的人更少.
请享用!
如果您尝试删除队列,因为它们未被使用且您不想重置,一个选项是通过策略将队列TTL设置得非常低,等待TTL通过后自动删除队列然后删除该策略(https://www.rabbitmq.com/ttl.html).
rabbitmqctl.bat set_policy delq ".*" '{"expires": 1}' --apply-to queues
Run Code Online (Sandbox Code Playgroud)
删除该政策
rabbitmqctl clear_policy delq
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于未使用的队列
原始信息:http://rabbitmq.1065348.n5.nabble.com/Deleting-all-queues-in-rabbitmq-td30933.html
这是使用PowerShell执行此操作的一种方法.URL可能需要更新
$cred = Get-Credential
iwr -ContentType 'application/json' -Method Get -Credential $cred 'http://localhost:15672/api/queues' | % {
ConvertFrom-Json $_.Content } | % { $_ } | ? { $_.messages -gt 0} | % {
iwr -method DELETE -Credential $cred -uri $("http://localhost:15672/api/queues/{0}/{1}" -f [System.Web.HttpUtility]::UrlEncode($_.vhost), $_.name)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
122295 次 |
| 最近记录: |