【发布时间】:2013-06-02 11:34:58
【问题描述】:
默认情况下,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”。我该如何解决?
附:芹菜==3.0.16
【问题讨论】:
-
我关闭了 CELERYBEAT_SCHEDULER 选项(使用了基于文件的停止)并且它工作正常。
标签: python celery django-celery