[rabbitmq-discuss] Data is feteched from the queue in random order

Matthias Radestock matthias at rabbitmq.com
Thu Apr 21 12:25:13 BST 2011


Kamal,

On 20/04/11 10:30, Kamal wrote:
> I am trying to dequeue data from the RabbitMQ. Why is it so that the
> data is not dequeued in the same order in which it was enqueued into
> the queue?

See section 4.7 for the AMQP 0-9-1 spec for the ordering guarantees provided

<quote>
contents flowing through a single path within the server will remain 
ordered. For contents of a given priority flowing through a single path, 
we define a content processing path as consisting of one incoming 
channel, one exchange, one queue, and one outgoing channel.

Guidelines for implementors:
 The server MUST preserve the order of contents flowing through a 
single content processing path, unless the redelivered field is set on 
the Basic.Deliver or Basic.Get-Ok methods.
</quote>

> Following is the block of code that I am using to dequeue:

The code itself looks fine, but the context in which this code is 
invoked is important. The most common cause of re-ordering is when a 
consumer is terminated prior to acknowledging all the messages it has 
been sent.

Regards,

Matthias.


More information about the rabbitmq-discuss mailing list