[rabbitmq-discuss] Recycling messages that have been consumed but not acked
Matthias Radestock
matthias at rabbitmq.com
Fri Sep 2 10:41:13 BST 2011
On 02/09/11 10:34, Marek Majkowski wrote:
> On Thu, Sep 1, 2011 at 06:30, Dmitry Demeshchuk<demeshchuk at gmail.com> wrote:
>> Looks like basic.recover is what I want, right?
>
> Yes, looks like it:
> http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.recover
Note however ...
>>> So, my question is, is there a way to make all unacked messages in a
>>> queue become ready for consumption again?
basic.recover acts on the *channel*, not the queue, i.e. it will cause
all messages delivered on the specific channel to be redelivered/requeued.
Also, the client owning the channel must not subsequently ack any of the
messages that were recovered, or the broker will complain. That's why
there is a synchronous version of 'basic.recover' since otherwise the
client has no idea which messages were recovered, namely all messages
received before the basic.recover-ok.
Matthias.
More information about the rabbitmq-discuss
mailing list