デフォルトでは、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_periodic」ではなく「celery」キューに送信します。どうすれば修正できますか?
PS セロリ==3.0.16