You probably only need to set CELERY_ACKS_LATE
Late ack means that job messages will be acknowledged after the task is completed, and not just earlier, which is the default behavior. That is, if the working crash rabbit MQ still has a message.
More info here.
Retry Lost or Failed Tasks (Celery, Django and RabbitMQ)
Mauro rocco
source share