[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