2011-07-26 3 views
5

celery을 사용하면 작업 내에서 마지막으로 작업을 실행 한 시간을 확인할 수 있습니까?셀러리 : 마지막으로 작업을 실행 한 시간에 액세스 할 수 있습니까?

"마지막으로 실행 한 이래로 모든 것을 가져오고 싶습니다."구현하고 싶습니다. 마지막으로 실행 한 타임 스탬프를 직접 추적하거나 셀러리에서 액세스 할 수 있습니다.

이것은 차이점을 만드는 경우 장고 프로젝트에서 온 것입니다.

답변

3

기본적으로 셀리는 작업 결과를 영구적으로 저장하지 않으므로 비트 모드에서 실행중인 경우 깨끗한 작업 결과와 실행 정보를 위해 일부 정리 프로세스가 실행됩니다. , 당신은 어떤 결과,

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) 

이 방법은 작업이 끝날 때마다이라고 after_return 귀하의 작업에 우선하여 방법을이 작업을 수행 할 수 있습니다, 당신이 상점의 모든 마지막 실행 업데이트 날짜없는 NoSQL을 사용하는 것이 좋습니다 싶어 작업이 성공으로 끝나거나 자신의 요구에 가장 적합한 행동을 구현할 때만 날짜를 저장할 수있는 상태를 확인하십시오.

1

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 
+0

이것은 정기적 인 작업에만 적용됩니다. – navyad

관련 문제