如何在Celery中将定期任务发送到特定队列
- 论坛
- 如何在Celery中将定期任务发送到特定队列
7 浏览
如何在Celery中将定期任务发送到特定队列
默认情况下,Celery将所有任务发送到“celery”队列,但是您可以通过添加额外的参数来改变这种行为:
<代码>@task(queue ='celery_periodic')
def recalc_last_hour():
log.debug('sending new task')
recalc_hour.delay(datetime(2013, 1, 1, 2))#例如
代码>
调度器设置:
<代码>CELERYBEAT_SCHEDULE = {
'installer_recalc_hour':{
'task':'stats.installer.tasks.recalc_last_hour',
'schedule':15 #每15秒一次进行测试
},
}
CELERYBEAT_SCHEDULER =“djcelery.schedulers.DatabaseScheduler”
代码>
运行worker:
<代码>python manage.py celery worker -c 1 -Q celery_periodic -B -E
代码>
这个方案不像预期的那样工作:这个worker将周期性任务发送到“celery”队列,而不是“celery_periodic”。我该如何修复这个问题?
附:celery==3.0.16