使用celery,是否有可能从任务内检查上次执行任务的时间是?芹菜:获取上次运行任务的时间?
我想实施“抓住你上次运行以来的一切”。我可以自己跟踪最后一次运行时间戳,或者希望能够从芹菜进入。
这是从一个django项目,如果这有所作为。
使用celery,是否有可能从任务内检查上次执行任务的时间是?芹菜:获取上次运行任务的时间?
我想实施“抓住你上次运行以来的一切”。我可以自己跟踪最后一次运行时间戳,或者希望能够从芹菜进入。
这是从一个django项目,如果这有所作为。
默认情况下,芹菜不会永久存储任务结果,如果您在节拍模式下运行,某些干净的进程将运行干净的任务结果以及执行信息。 想我建议你是使用NoSQL的店面每一个最后执行日期,您可以通过覆盖在你的任务做到这一点的方法after_return
def after_return(self, status, retval, task_id, args, kwargs, einfo):
#exit point for context managers
self.taskLogger.__exit__(status, retval, task_id, args, kwargs, einfo)
这种方法被称为每次任务结束时,有任何结果,通过检查你的日期状态,只有在任务完成后才能存储你的日期,或者实现最符合你需要的行为。
如果您使用的是django-celery,last_run at会保存在模型中。使用正常的django ORM使用您的任务名称来过滤PeriodicTask模型。
from djcelery.models import PeriodicTask
last_run = PeriodicTask.objects.only('last_run_at').get(task='TASK_NAME_HERE').last_run_at
这只适用于定期任务。 – navyad