We don't cover Celery or Heroku add-on on this list.
As tutorial 2 [1]
should mention, dropped connections (technically: closed channels) will result in unacknowledged messages
being re-queued. Perhaps it takes a while to detect peer loss (shouldn't be if the process
is killed, but who knows), so take a look at using a lower (6-10 seconds) heartbeat timeout
value [2]. Otherwise I'd expect that Celery is trying to be too smart.
Note that the number of consumers
is irrelevant for deciding whether to re-queue unacknowledged deliveries, all that matters is whether the channel (or its entire connection) is still open.
1.
http://www.rabbitmq.com/getstarted.html
2.
http://rabbitmq.com/heartbeats.html
--
MK
Staff Software Engineer, Pivotal/RabbitMQ