[rabbitmq-discuss] Reordering on requeue

Matthias Radestock matthias at rabbitmq.com
Sun Jul 3 20:54:27 BST 2011


Jiri,

On 03/07/11 16:19, Jiri Krutil wrote:
> I would like to know if and when does rabbit change the order of
> messages on a queue in case of reject with requeue.
>
> Will a requeued message be pushed back onto the queue tail or will it
> stay at the head?

It will go to the tail. We are considering changing that behaviour for 
channel/connection closure and basic.recover{requeue=true}, but 
basic.reject/nack will likely stay as they are.

> What about messages consumed within a transaction that
> was rolled back?

Message consumption is not transactional. Acks are. When a transaction 
is rolled back all the acks submitted in it are forgotten, as if they 
had never happened. At that point the client still logically owns the 
messages - no message is requeued until it has been basic.reject/nack'ed 
or the consuming channel closes.


Matthias.


More information about the rabbitmq-discuss mailing list