[rabbitmq-discuss] Sematics of ACK/REQUEUE/DISCARD on a message

Matthias Radestock matthias at rabbitmq.com
Thu May 6 06:17:44 BST 2010


Matthew Sackman wrote:
> On Wed, May 05, 2010 at 07:51:35PM +0200, Andreas Jung wrote:
>> Two questions:
>>
>> - - assuming a consumer could process a message with success - what is
>>   the difference in the message handling inside the queue between
>>   acknowledging it or discarding it - it will be removed from the queue
>>   in both cases?!
> 
> If you don't ack it, it will be retained by RabbitMQ and will be
> redelivered to some other consumer eventually when your current
> consumer cancels/dies.

Careful here - cancelling a consumer with basic.cancel does *not* cause 
unack'ed messages to be requeued/redelivered. For that to happen the 
channel needs to be closed (explicitly, or implicitly via a connection 
closure or termination).


Matthias.



More information about the rabbitmq-discuss mailing list