1

バックエンドでdjango-celeryを使用djcelery.schedulers.DatabaseSchedulerすると、最後の実行時間にアクセスする必要がありますcelery.task.PeriodicTask

バージョン 2.4の古いドキュメントにPeriodicClassMetaは、タスクのメタデータを持つクラスがあり、 last_run. ただし、ドキュメントにdjango-celeryは、モデルの使用方法やセットアップ方法に関する情報は含まれていませんPeriodicTasks

PeriodicTasksそれで、私の質問は、バックエンドを使用して django-celery でどのようにセットアップしDatabaseScheduler、最後の実行に関連するメタデータにアクセスするのですか?

4

1 に答える 1

3

このタスクは定期的なタスクとしてのみ実行され、タスクの実行時間は定期的なタスクの間隔よりも短いと仮定します。

from djcelery.models import PeriodicTask, TaskMeta

last_run = PeriodicTask.objects.only('last_run_at')\
                               .get(task=task_name).last_run_at
task_meta = TaskMeta.objects.filter(task_id=task_name, date_done__gte=last_run)\
                            .order_by('date_done').only('meta')[:1][0].meta
于 2013-03-28T12:16:33.483 に答える