私はdjango + celeryを使って定期的な作業をしています。私のプロジェクトにはdjango-celery == 3.1.17があり、使用されているブローカはRedisであり、動作しています。Django + Celery - 定期的なタスクが実行されない理由
は私の設定ファイルで:
CELERYBEAT_SCHEDULE={
'delivery_send': {
'task': 'delivery.tasks.DeliverySendTask',
'schedule': timedelta(minutes=1),
'args': [],
},
}
CELERY_ROUTES = {
'delivery.tasks.DeliverySendTask': {
'queue': 'periodic_tasks',
'routing_key': 'periodic_tasks'
},
}
よりセロリの設定がありますが、私はこの二つはこの質問に最も関連していると思います。
タスク:
class DeliverySendTask(Task):
def run(self, *args, **kwargs):
logger.info('executing task!')
from .models import Dispatch
Dispatch.objects.all().delete()
その後、私はpython manage.py celery beat
を実行すると、コンソール
[2016-06-23 14:32:01,230: INFO/MainProcess] Scheduler: Sending due task delivery_send (delivery.tasks.DeliverySendTask)
しかし、削除で参照が実際に実行されることはありません。私は何が欠けていますか?
ありがとうございました。
あなたはセロリの作業者 'python manage.py celery worker -l info'を実行していますか? – ravigadila
@RaviKumarタスクが実行されました。私が行方不明だったことは、労働者を正しく開始させることでしたか? –