芹菜任务处理程序与信号

时间:2014-11-12 20:53:30

标签: python celery celery-task

芹菜任务有on_success handlertask-success signal。 有什么区别?

1 个答案:

答案 0 :(得分:1)

docs中所述:

  

抽象类未注册,但用作基类   对于新的任务类型。

显然处理程序是可以覆盖以执行某些操作的方法。您可以在文档中看到自定义处理程序after_return的示例:

from celery import Task

class DebugTask(Task):
    abstract = True

    def after_return(self, *args, **kwargs):
        print('Task returned: {0!r}'.format(self.request)

信号是解耦的手段,因此您可以让您的代码从外部进行侦听,以便发生某些事件并采取适当的行动。