我正在使用 django 和 djcelery。由于有些任务有点重,我希望它们在一个单独的队列中。
根据用户指南中关于自动路由的部分,您可以通过设置变量来实现CELERY_ROUTES
。但是这不起作用,所有任务最终都在默认队列中。当我在我的任务类中明确设置队列变量时,它确实有效。
在我的设置文件中,我有
CELERY_ROUTES = {"analysis.tasks.analyze_item": {"queue": "analysis_queue"}}
我开始芹菜工人
python manage.py celeryd -Q analysis_queue
我的任务.py
class Analyze(Task):
queue = 'analysis_queue' # <--- without this it doesn't work..
....
analyze_item = registry.tasks[Analyze.name]