7

I'm looking to implement RabbitMQ into my PHP application, and am using the php-amqp extension. My only question is this, how do I easily query to return the contents of the queue in PHP?

php-amqp seems to not enable me to do this. If I am going wrong, please help me out here :)

4

3 回答 3

2

James, could you please ask this question on rabbitmq-discuss? Your question touches on what it means to 'query' a queue in order to get messages. In RabbitMQ you consume messages from queues, and perform filtering using queue bindings. Have a look at this intro - http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

Cheers

alexis RabbitMQ

于 2010-02-08T12:00:01.950 回答
2

If you need to know how many messages are in a queue, you can get this information when you declare the queue, or if you use basic.get to retrieve a single message. Normally, recipients of messages will use basic.consume and they will not know how many messages are waiting.

于 2011-08-10T05:13:16.707 回答
0

Such kind of question are more about queue data type and general AMQP concept.

In AMQP (and in RabbitMQ, which is AMQP-compatible broker) queues are typical FIFO queues. Queue is not that type of data types that normally used for arbitrary items access and RabbitMQ at this time doesn't provide any way to bypass FIFO concept and allow such kind of access. At least out of the box. There are might be any third-party plugins, but I'm not aware of any such of a kind. And once again, it will ruin whole FIFO concept and it just become some new redis or whatever, not even talking about performance impact (one can check complexity of common data structures operation, even this Q&A on SO - What are the time complexities of various data structures? gives brief idea why adding arbitrary access is not a goal of AMQP or any AMQP-compatible broker that cares about performance).

Most of questions about arbitrary queue access comes when queues are put into wrong context: it might be a case when queue concept just doesn't fit current or desire architecture and when some key-value storage or database fist better.

于 2016-02-20T10:43:53.033 回答