Dask worker 优雅的任务失败

Dask worker graceful task failure

当我 运行 dask.distributed 工作人员时,任务函数中抛出的任何异常都会传播到调度程序并终止整个作业。有没有办法优雅地使任务失败,以便调度程序负责重试它(可能在另一个工作人员上)?

目前 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)