关闭来自客户端或调度程序的dask工作者

时间:2018-01-17 16:28:43

标签: python distributed dask

在API中,有一种方法可以restart所有工作人员和shutdown客户端,但我认为在保持客户端不变的情况下,我无法阻止所有工作人员。有没有办法做到这一点我找不到或者它是不存在的功能?

1 个答案:

答案 0 :(得分:4)

这似乎是一个不存在的功能,但仍然可以使用当前代码。您可以使用run_on_scheduler与调度程序本身的方法进行交互。

workers = list(c.scheduler_info()['workers'])
c.run_on_scheduler(lambda dask_scheduler=None: 
    dask_scheduler.retire_workers(workers, close_workers=True))

其中c是客户端,我们呼叫retire_workers以优雅地要求每个工作人员退出。

可能有其他方法可以实现这一目标。 请注意,调度程序在这种情况下仍然运行 - 从问题中不清楚是否需要它。