How can one set the default value of auto_delete to False for all new created queues by Celery using AMQP? I use the default settings. So the default "celery" exchange is auto_delete = False. Adding a task like this
result = client.send_task('abc')
results in a queue with auto_delete = True.
Declaring a queue, exchange or binding is a bit like ‘Single Assignment’ in Erlang, if you declared it once with auto_delete=False then you cannot later declare it to be auto_delete=True. To change the definition you must delete it first.
Notice also that Exchange.auto_delete is deprecated as it does not work very well, and it’s not supported by librabbitmq.
Source: Celery User Group