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