当我运行dask.distributed worker时,任务函数中抛出的任何异常都会传播到调度程序并终止整个作业。有没有办法优雅地使任务失败,以便调度程序负责重试它(可能在另一个工作者上)?
答案 0 :(得分:1)
目前,Dask.distributed调度程序将异常解释为任务的真值。目前不支持自动重试(截至2017年8月)。然而,这经常被要求。我不会对在不久的将来看到这种变化感到惊讶。
与此同时,我们建议在您的任务中添加重试逻辑。
def f(*args, **kwargs):
for i in range(n_retries):
try:
# your code
# return result
except Exception:
pass
future = client.submit(f, *args, **kwargs)