任务更新仅在DB中记录

时间:2014-11-23 14:41:50

标签: python django celery

我有一个周期性的任务,我每分钟运行一次,我无法弄清楚为什么它只更新我在第一次运行时在查询中指定的字段。当我在第一次执行任务后更改值时,它不会变回0.这是任务:

@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)

以下是我在芹菜工人输出中看到的内容:

[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>

那么请你告诉我我哪里错了?我无法让它发挥作用。

1 个答案:

答案 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)