gpt4 book ai didi

python - 如何在 Celery 任务中使用自动重试记录异常

转载 作者:行者123 更新时间:2023-12-05 06:17:36 25 4
gpt4 key购买 nike

来自 celery 文档,

If you want to automatically retry on any error, simply use:

@app.task(autoretry_for=(Exception,))
def x():
...

我们如何记录它重试的异常?如果我们有一个 try-except,添加日志就很容易了,例如

@app.task(bind=True, default_retry_delay=30 * 60)  # retry in 30 minutes.
def add(self, x, y):
try:
something_raising()
except Exception as exc:
logger.info('Retry for exception %s', exc)
# overrides the default delay to retry after 1 minute
raise self.retry(exc=exc, countdown=60)

但我想使用 autoretry,这样我就可以利用 autoretry 附带的 celery 重试退避,而不是使用 try-except 实现我自己的倒计时。请帮忙。

最佳答案

在声明任务时添加throws 参数,这将在屏幕上弹出异常,它可以更改为您想要抛出的任何预期异常。例如RequestException、TimeoutException

@app.task(bind=True, throws=(Exception,), default_retry_delay=30 * 60)  # retry in 30 minutes.
def add(self, x, y):
...

关于python - 如何在 Celery 任务中使用自动重试记录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61571440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com