如何在主菜上覆盖芹菜中的__call__?

时间:2014-02-05 10:19:03

标签: python django celery

我一直在使用抽象的Task并覆盖__call__方法,以便在每个任务执行之前处理一些事情:

class CoreTaskHandler(Task):
    abstract = True
    def __call__(self, *args, **kwargs):

但是__call__方法在worker上执行,我需要一些覆盖,它将在main上执行,而不是每次任务被“延迟”时都执行。

有没有人知道我将如何继续这样做?

1 个答案:

答案 0 :(得分:2)

我已通过覆盖Task:

中的apply_sync方法修复此问题
class CoreTaskHandler(Task):
    abstract = True
    def apply_async(self, *args, **kwargs):

        ........

        return super(CoreTaskHandler, self).apply_async(*args, **kwargs)