从客户端或调度程序关闭 dask worker

Shutdown dask workers from client or scheduler

在API中,有一种方法可以完全restart all workers and to shutdown客户端,但我看不出有什么办法可以在保持客户端不变的情况下停止所有worker。有没有我找不到的方法可以做到这一点,或者它是一个不存在的功能?

这似乎是一个不存在的功能,但使用当前代码仍然可以实现。您可以使用 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 是一个 Client,我们调用 retire_workers 优雅地要求每个 worker 退出。

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