如何在Celery中将定期任务发送到特定队列

7 浏览
0 Comments

如何在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

0