【发布时间】:2017-02-01 03:19:23
【问题描述】:
我正在使用 Dask 分布式调度程序,在本地运行一个调度程序和 5 个工作人员。我将delayed() 任务列表提交给compute()。
当任务的数量是 20(一个数字 >> 比工人的数量)并且每个任务至少需要 15 秒时,调度程序开始重新运行一些任务(或者并行执行它们更多不止一次)。
这是一个问题,因为任务修改了 SQL 数据库,如果它们再次运行,它们最终会引发异常(由于数据库唯一性约束)。我没有在任何地方设置pure=True(我相信默认是False)。除此之外,Dask 图很简单(任务之间没有依赖关系)。
仍然不确定这是 Dask 中的功能还是错误。我有一种直觉,这可能与工人偷窃有关......
【问题讨论】: