2010-02-06 210 views
7

我在執行RabbitMQ到我的PHP應用程序,並使用php-amqp擴展名。我唯一的問題是,我如何輕鬆地查詢返回PHP中隊列的內容?從RabbitMQ隊列中檢索消息

php-amqp似乎不能讓我這樣做。如果我錯了,請幫我在這裏:)

回答

2

詹姆斯,你可以問一下rabbitmq-discuss這個問題嗎?你的問題涉及到「查詢」隊列以獲取消息的含義。在RabbitMQ中,您使用來自隊列的消息,並使用隊列綁定執行過濾。看看這個介紹 - http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

乾杯

亞歷克西斯 的RabbitMQ

2

如果你需要知道有多少消息是在隊列中,您可以在申報隊列中獲取此信息,或者如果您使用basic.get檢索單個郵件。通常,郵件的收件人將使用basic.consume,他們不會知道有多少郵件在等待。

0

這樣的問題更多的是關於queue data type和一般AMQP概念。

在AMQP(和RabbitMQ中,AMQP兼容代理)隊列是典型的FIFO隊列。隊列不是通常用於任意項目訪問的那種類型的數據類型,此時RabbitMQ不提供任何繞過FIFO概念並允許此類訪問的方式。至少開箱即用。可能有任何第三方插件,但我不知道有這樣的一種。再一次,它會毀了整個FIFO的概念,它只是成爲一些新的redis或什麼,甚至沒有談論性能影響(可以檢查常見數據結構操作的複雜性,即使這個SO - What are the time complexities of various data structures?提供了簡要的想法爲什麼添加任意訪問不是AMQP或任何關注性能的兼容AMQP的代理的目標)。

有關任意隊列訪問的大部分問題都出現在隊列放入錯誤的上下文中時:隊列概念不適合當前或期望的體系結構,以及某些鍵值存儲或數據庫拳頭更好時,可能會出現這種情況。

相關問題