重试时芹菜什么时候调用 on_failure
When is on_failure called by celery when retrying
我在 celery 中使用 Task Inheritance 重试 (max_retries: 3
) 某些异常,并记录失败。
on_failure
是在每次尝试失败时调用还是仅在最后一次尝试(在我的情况下是第 3 次)之后调用?
def __call__(self, *args, **kwargs):
try:
return self.run(*args, **kwargs)
except InterfaceError as exc:
self.retry(exc=exc, countdown=5, max_retries=3)
def on_failure(self, exc, task_id, args, kwargs, einfo):
log(exc) # This is a gross simplification of the logging
对此进行了测试,on_failure 仅在重试全部失败后 运行。
因此,使用上面给出的示例,在第 3 次失败后调用 on_failure。
我在 celery 中使用 Task Inheritance 重试 (max_retries: 3
) 某些异常,并记录失败。
on_failure
是在每次尝试失败时调用还是仅在最后一次尝试(在我的情况下是第 3 次)之后调用?
def __call__(self, *args, **kwargs):
try:
return self.run(*args, **kwargs)
except InterfaceError as exc:
self.retry(exc=exc, countdown=5, max_retries=3)
def on_failure(self, exc, task_id, args, kwargs, einfo):
log(exc) # This is a gross simplification of the logging
对此进行了测试,on_failure 仅在重试全部失败后 运行。
因此,使用上面给出的示例,在第 3 次失败后调用 on_failure。