我读了docs on Celery tasks,不明白我是怎么做我需要的。在
我想启动一个任务,每1秒运行并重试一次。3秒后,它应该停止重试并返回一个默认值。在
以下是一个无法按预期工作的POC代码:
@task(expires=3, default_retry_delay=1, max_retries=10)
def ttt(args):
try:
return slow_work_result(args)
except SlowWorkFailed:
pass
try:
return ttt.retry(countdown=1)
except MaxRetriesExceededError:
return False
ttt.apply_async(args=(1,)).get()
任务应在3秒后过期,但MaxRetriesExceededError
应在10秒后引发。但当我运行它时,它会因为MaxRetriesExceededError
而停止。在
我做错什么了?在
这个尝试除了构造更优雅吗?在
我写了一个任务装饰重试任务也许可以解决你的问题。在
https://gist.github.com/3958777
相关问题 更多 >
编程相关推荐