Gre*_*gor 16 python celery celeryd
我像在Docs-Example中那样用芹菜重试:
@task()
def add(x, y):
try:
...
except Exception, exc:
add.retry(exc=exc, countdown=60) # override the default and
# retry in 1 minute
Run Code Online (Sandbox Code Playgroud)
每次重试此作业时,如何增加重试倒计时 - 例如60秒,2分钟,4分钟等等,直到MaxRetriesExceeded被提升为止?
Don*_*ums 31
这是一种在每次评估任务时创建更大延迟的简单方法.该值由芹菜本身更新,因此您无需自行管理任何内容.
@task()
def add(x, y):
try:
...
except Exception as exc:
raise add.retry(exc=exc, countdown=60 * add.request.retries)
Run Code Online (Sandbox Code Playgroud)
注意:重复第一个任务,倒计时为0.因为第一次运行的重试次数为0.
保留一个变量,其中包含最后一次重试时间,并将其每次乘以2,直到它超过您想要的任何级别(或者,如果您喜欢某个次数,请保持计数...)
由于4.2版本可以使用的选项autoretry_for
,并retry_backoff
为此目的,例如:
@task(max_retries=10, autoretry_for=(Exception,), retry_backoff=60)
def add(x, y):
pass
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6248 次 |
最近记录: |