I have a system with long-processing consumers which pull off shared queues. I'm using a direct exchange. Here's what I want to have happen:
Consumers A, B read from shared queue Q A and B are both busy when messages 1, 2, 3 arrive on Q A unblocks and begins processing 1 B unblocks and begins processing 2 B finishes 2, and begins processing 3 A finishes 1 Questions are as follows: What's the difference in behaviour for setting the capacity of a receiver to 0 versus 1? If consumer B calls fetch() before consumer A calls acknowledge(), can consumer B end up with the same message as consumer A? For long-processing consumers, is it better to acknowledge when processing starts or when processing ends? What happens when my consumers read from many shared queues, and use the session.next_receiver() functionality? From my understanding, next_receiver() needs prefetch enabled to function. However, I don't want messages pulled from shared queues onto consumers which have just started a long processing block - preventing other, idle consumers from processing the message in question. Thanks in advance, Greg --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
