从RabbitMQ队列中检索消息

时间:2010-02-06 23:03:16

标签: php queue message-queue rabbitmq amqp

我希望将RabbitMQ实现到我的PHP应用程序中,并使用php-amqp扩展。我唯一的问题是,如何轻松查询以返回PHP中的队列内容?

php-amqp似乎无法让我这样做。如果我出错了,请在这里帮助我:))

3 个答案:

答案 0 :(得分:2)

詹姆斯,你能问一下关于rabbitmq讨论的这个问题吗?您的问题涉及“查询”队列以获取消息的含义。在RabbitMQ中,您使用来自队列的消息,并使用队列绑定执行过滤。看一下这个介绍 - http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

干杯

亚历 的RabbitMQ

答案 1 :(得分:2)

如果您需要知道队列中有多少消息,您可以在声明队列时获取此信息,或者使用basic.get来检索单个消息。通常,邮件的收件人将使用basic.consume,他们将不知道有多少邮件正在等待。

答案 2 :(得分:0)

这类问题更多是关于queue data type和一般的AMQP概念。

在AMQP(和RabbitMQ,它是AMQP兼容的代理)队列是典型的FIFO队列。队列不是通常用于任意项访问的那种类型的数据类型,而RabbitMQ此时并未提供任何绕过FIFO概念并允许这种访问的方法。至少开箱即用。可能有任何第三方插件,但我不知道任何这样的插件。再次,它将破坏整个FIFO概念,它只是成为一些新的redis或者其他什么,甚至没有谈论性能影响(人们可以检查常见数据结构操作的复杂性,甚至是SO上的Q& A - What are the time complexities of various data structures?简要说明为什么添加任意访问不是AMQP或任何关心性能的AMQP兼容代理的目标。

当队列被置于错误的上下文中时,大多数关于任意队列访问的问题都出现了:当队列概念不适合当前或期望的架构以及某些键值存储或数据库更好时,可能就是这种情况。