[rabbitmq-discuss] Queue Look-ahead, et alia
Bell, Paul M.
pbell at syncsort.com
Mon Feb 6 12:37:48 GMT 2012
A few miscellaneous questions about RabbitMQ.....
1. Is it possible for a consumer to consume specific messages from a queue, e.g., one that contains a specific value (like a unique "request ID" that is part of each message)?
2. Is it possible for a consumer to "run a queue," e.g., visit each message in the queue without removing it?
3. Perhaps related to (1): does Rabbit support a kind of queue "peek" logic in the manner of Queue objects in C# and elsewhere? Peek allows one to obtain the queue head but leave it in place. (I know from previous threads on this list that message will remain in Q until expressly ack-ed, so maybe that's the answer.....)
Behind my questions is something I learned re Microsoft's Azure design. Its message queues can be manipulated via RESTful URIs. Consequently, the contents of an Azure queue can be queried, just as one might query data in the persistence layer.
I am not sure if we can do this via RabbitMQ. But I would like it if the queues could be "first-class citizens" in this regard. After all, they do contain and reflect useful state about the application. Suppose I have a message sitting in the queue that is waiting to be "dispatched" by a consumer. Now user wants to suspend the message (actually, suspend the task that will be dispatched in response to this message) so that it is no longer eligible for dispatch. How might I approach this with RabbitMQ? (I recall from an earlier thread that, because you can't modify a message in place, you'd have to read the message, update it (set "suspend") and then reinsert it into queue).
As always, thanks for your help.
The information contained in this message (including any files transmitted with this message) may contain proprietary, trade secret or other confidential and/or legally privileged information. Any pricing information contained in this message or in any files transmitted with this message is always confidential and cannot be shared with any third parties without prior written approval from Syncsort. This message is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any use, disclosure, copying or distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and/or Syncsort and destroy all copies of this message in your possession, custody or control.
More information about the rabbitmq-discuss