芹菜任务有on_success handler和task-success signal。 有什么区别?
答案 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)
信号是解耦的手段,因此您可以让您的代码从外部进行侦听,以便发生某些事件并采取适当的行动。