[rabbitmq-discuss] 2 unack messages for 1 process

Ask Solem ask at rabbitmq.com
Mon Mar 26 15:09:28 BST 2012

On 21 Mar 2012, at 16:26, Paulo Cheque wrote:

> Hi, I am using Celery (http://celeryproject.org/) to produce and
> consume RabbitMQ messages. Only one process of Celery consume
> messages, so why can I see in Rabbit 2 unack messages at the same
> time?
> I understand Rabbit had 1 unack message for each consumer process.

See http://docs.celeryproject.org/en/latest/userguide/optimizing.html#prefetch-limits

Also, Celery has two 'ack' settings: early or late.
With early ack (default) the message is acknowledged *before* the
task is executed, with late ack it is acknowledged after.

So with early ack it may reserve an additional message even if the prefetch multiplier
is set to 1.

You should read this FAQ entry to understand why Celery uses the early ack behavior
by default: http://docs.celeryproject.org/en/latest/faq.html#should-i-use-retry-or-acks-late

More information about the rabbitmq-discuss mailing list