2014-11-23 3 views
0

나는 매분마다 실행되는 주기적 작업을 가지고 있으며, 처음 실행했을 때 쿼리에서 지정한 필드를 업데이트하는 이유를 알 수 없습니다. 여기작업 업데이트는 DB에만 기록됩니다.

@shared_task 
class my_task(): 
    one_day_before = timezone.now() - datetime.timedelta(days=1) 
    User.objects.filter(status=1, created__lt=one_day_before).update(status=0) 

그리고이 실행될 때 나는 셀러리 작업자 출력에서 ​​볼 수있는 작업은 다음과 같습니다 : 나는 작업의 첫 번째 실행 후 값을 변경있을 때, 그것은 0으로 다시 변경 아니에요 여기에 작업의

[2014-11-23 14:38:34,213: INFO/MainProcess] Received task: users.tasks.my_task[fe16a6e9-0b2c-4099-9e95-29c8501d500a] 
[2014-11-23 14:38:34,216: INFO/MainProcess] Task users.tasks.my_task[fe16a6e9-0b2c-4099-9e95-29c8501d500a] succeeded in 0.00161398899945s: <users.tasks.my_task instance at 0x7fd54e12f1b8> 

내가 잘못한 곳을 알려주시겠습니까? 나는 단지 그것을 작동하게 만들 수 없다.

+0

셀러리 이외의 쿼리는 정상적으로 작동합니다. –

답변

0

글쎄, 내가 왜 그런 실수를 할 수 있는지조차 모르겠다. 물론 클래스 (클래스가 아닌)로 설명되어야합니다.

@shared_task 
def my_task(): 
    one_day_before = timezone.now() - datetime.timedelta(days=1) 
    User.objects.filter(status=1, created__lt=one_day_before).update(status=0)