作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自 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/
我是一名优秀的程序员,十分优秀!