RabbitMQ是否有列出队列和交换机的API?

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

4

3

2012年更新

RabbitMQ的开发可能已经使得这个问题和其他答案过时了。提供REST API的管理插件现在是RabbitMQ的一部分。不过,该插件可能默认情况下被禁用。


只是补充一下,例如要列出队列,可以使用:http://server-name:15672/api/queues - David Constantine

0
如果您需要在完成后自动删除交换和队列,那么您可以根据exchange_declare和queue_declare选项来实现。
回到您列出队列和交换的问题上,您可以使用像这样的工具:http://github.com/tnc/rac 稍加调整,您就可以编写一个PHP脚本来获取所需内容。只需检查该项目的lib文件夹即可。

我已经查看了这些选项,它们似乎不支持自动清理,除非您在使用队列时保持连接打开。我需要能够从一组 Web 服务器使用队列,其中请求可能在服务器之间反弹。同样,我需要在写入过程完成后读取消息,但我无法保证我会读取所有消息并且需要进行清理。查看 rac,似乎没有 API 可用,您必须使用 Erlang 接口才能获取信息。 - edebill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接