How to set auto_delete=False for all new queues in Celery?

1.3k Views Asked by At

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.

1

There are 1 best solutions below

1
On

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