我已经搜索了很多,但我没有找到一个好的编程方法来列出RabbitMQ服务器上的队列。
这很重要,因为当我完成它们时,我需要清理我的队列和交换。 我并不总是有一个好的“完成”事件可以用来触发清理,所以我想用更像垃圾回收模型的方式来做。 如果我能列出队列,我就可以验证与它们相关的对象是否不应该再产生更多条目,并将其清理掉。
我知道可以使用rabbitmqctl来实现,但这需要特权。
由于我找不到一种程序化地列出队列的方法,所以我一直在数据库中保留名称列表。 这可以工作,但很丑陋。
2012年更新
RabbitMQ的开发可能已经使得这个问题和其他答案过时了。提供REST API的管理插件现在是RabbitMQ的一部分。不过,该插件可能默认情况下被禁用。