首先要做的事情:我CELERY_CREATE_MISSING_QUEUES = False
在我的 celeryconfig 中有一个 celery worker,我使用celery worker -Q queue1
. 我可以通过监视来查看queue1
创建的内容,并且工作人员正在监听它。现在,当我启动一个路由(通过CELERY_ROUTES
)到的任务时queue2
,我可以看到它queue2
已创建;有人可以解释这种行为吗?注意:我认为我要问的与这个问题不同,因为我看到、理解并可以控制为存储结果而创建的临时队列的生命周期。我想知道的是为什么要创建辅助队列。
问问题
875 次
1 回答
2
-Q
当 worker 启动时,Celery 会自动创建使用参数和/或设置明确指定的队列CELERY_QUEUES
。
该CELERY_CREATE_MISSING_QUEUES
设置指的是在工作程序启动时未使用这两种机制中的任何一种指定的其他队列。例如,如果您为您的任务装饰器之一指定一个未列出的队列。
@app.task(queue='some-new-queue'):
def some_task(params):
pass
当 Celery 发现some-new-queue
它不存在时,它会为您创建它,但前提是CELERY_CREATE_MISSING_QUEUES
设置为 True。否则会报错。
于 2015-04-29T18:01:38.893 回答