基于Celery类的任务apply_async

时间:2013-11-11 10:31:12

标签: celery django-celery

我的类继承自celery.task.PeriodicTask,我希望有时会异步运行此任务。

如果这是通常的方法任务,我做了类似的事情:

@periodic_task(run_every=timedelta(minutes=15))
def mytask(additional=False):
    if a==b and not additional:
        # args = [True,] sets additional=True
        mytask.apply_async(args=[True, ], countdown=7*60)

但现在我有一个班级:

from celery.task import PeriodicTask
class MyClassTask(PeriodicTask):
    def run(self, additional=False):
        if a == b and not additional:
            self.apply_async(task_id=self.request.id, args=[True, ], countdown=7*60)

编辑:代码工作正常。我查了一下,不再需要提问了。

1 个答案:

答案 0 :(得分:0)

我手动双重检查,我的代码有效,任何人都可以这样做:

from celery.task import PeriodicTask
class MyClassTask(PeriodicTask):
    def run(self, additional=False):
        if a == b and not additional:
            self.apply_async(task_id=self.request.id, args=[True, ], countdown=7*60)