2010-05-15 77 views
2

我看了很多,但是我一直沒有找到一個很好的編程方式來列出RabbitMQ服務器上的隊列。有在RabbitMQ上列出隊列和交換的API嗎?

這很重要,因爲我需要清理隊列並與他們交流。我並不總是有一個很好的「完成」事件可以用來觸發清理,所以我想用更多的垃圾收集模型來完成。如果我可以列出隊列,我可以驗證它們相關的對象應該不會產生更多條目並清理它們。

我知道我可以使用rabbitmqctl來做到這一點,但需要提升特權。

因爲我一直沒有找到一種方式來以編程方式列出隊列,我一直在數據庫中保存一個名稱列表。這有效,但它很醜。

回答

0

如果您需要的是在完成後自動刪除交換和隊列,則可以基於用於exchange_declare和queue_declare的選項來完成此操作。

回來到您的列表隊列和交流的問題,你可以使用這樣一個工具:http://github.com/tnc/rac

稍加調整,你可以寫一個PHP腳本來得到你所需要的。只需檢查該項目的lib文件夾下。

+0

我已經看過這些選項,它們似乎並不支持自動清理,除非在整個使用隊列時保持連接打開。我需要能夠使用來自Web服務器場的請求可能在服務器之間彈跳的隊列。同樣,在寫入過程完成之後,我需要讀取消息,但我不能保證我將讀取所有消息,並且無論如何都需要清理。 看看rac,它看起來真的沒有API,你必須使用Erlang接口來獲取信息。 – edebill 2010-05-17 14:43:22

2

2012更新

的RabbitMQ的發展可能已經取得了問題,其他的答案外的日期。提供REST API的Management Plugin現在是RabbitMQ的一部分。想想,該插件可能會被默認禁用。