2010-02-06 212 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的代理的目标)。

有关任意队列访问的大部分问题都出现在队列放入错误的上下文中时:队列概念不适合当前或期望的体系结构,以及某些键值存储或数据库拳头更好时,可能会出现这种情况。

相关问题