我看起来相当多,但我找不到一个好的编程方式来列出RabbitMQ服务器上的队列。
这很重要,因为当我完成它们时,我需要清理队列和交换。我并不总是有一个很好的“完成”事件可以用来触发清理,所以我想用更多的垃圾收集模型来做。如果我可以列出队列,我可以验证他们所关联的对象不应该生成更多条目并清理它们。
我知道我可以使用rabbitmqctl
来执行此操作,但这需要提升权限。
由于我无法找到以编程方式列出队列的方法,因此我一直在数据库中保留一个名称列表。这很有效,但很难看。
答案 0 :(得分:4)
您可以使用Alice - http://github.com/auser/alice。它是一个执行rabbitmqctl命令的REST接口
答案 1 :(得分:2)
2012年更新
RabbitMQ开发可能使问题和其他答案过时了。提供REST API的Management Plugin现在是RabbitMQ的一部分。默认情况下,插件可能会被禁用。
答案 2 :(得分:0)
如果您需要在完成后自动删除交换和队列,那么您可以根据用于exchange_declare和queue_declare的选项来完成此操作。
回到列出队列和交换的问题,你可以使用像这样的工具:http://github.com/tnc/rac
通过一些调整,你可以编写一个PHP脚本来获得你需要的东西。只需检查该项目的lib文件夹。