【问题标题】:django-celery PeriodicTask getting last run time using DatabaseSchedulerdjango-celery PeriodicTask 使用 DatabaseScheduler 获取上次运行时间
【发布时间】:2013-03-18 12:37:54
【问题描述】:

使用 django-celery,后端为djcelery.schedulers.DatabaseScheduler,我需要访问celery.task.PeriodicTask 的最后运行时间

version 2.4 的旧文档说有一个类 PeriodicClassMeta 包含任务的元数据,包括 last_run。但是django-celery 的文档不包含任何模型的使用信息或如何设置PeriodicTasks

那么,我的问题是,如何在 django-celery 中设置 PeriodicTasks,使用 DatabaseScheduler 后端并访问与上次运行相关的元数据?

【问题讨论】:

    标签: python django celery


    【解决方案1】:

    假设此任务仅作为周期性任务运行,并且任务运行时间短于周期性任务的间隔。

    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
    

    【讨论】:

      猜你喜欢
      • 2020-06-07
      • 2015-08-27
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2023-03-24
      • 2013-07-07
      • 1970-01-01
      相关资源
      最近更新 更多