默认情况下,Celery 将所有任务发送到“celery”队列,但您可以通过添加额外参数来更改此行为:
@task(queue='celery_periodic')
def recalc_last_hour():
log.debug('sending new task')
recalc_hour.delay(datetime(2013, 1, 1, 2)) # for example
调度器设置:
CELERYBEAT_SCHEDULE = {
'installer_recalc_hour': {
'task': 'stats.installer.tasks.recalc_last_hour',
'schedule': 15 # every 15 sec for test
},
}
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
运行工人:
python manage.py celery worker -c 1 -Q celery_periodic -B -E
该方案没有按预期工作:此工作人员将定期任务发送到“celery”队列,而不是“celery_periodic”。我该如何解决?
PS芹菜==3.0.16