是否可以在给定客户端实例的情况下关闭 dask.distributed 集群?

Dav*_*eld 6 distributed dask

如果我有一个distributed.Client实例,我可以用它来关闭远程集群吗?即杀死所有工人并关闭调度程序?

如果使用Client实例无法做到这一点,除了手动杀死每个远程进程之外,还有其他方法吗?

mdu*_*ant 8

没有专门用于此的客户端功能。

调度有一个close(),你可以调用使用方法,run_on_scheduler从而

c.run_on_scheduler(lambda dask_scheduler=None: 
    dask_scheduler.close() & sys.exit(0))
Run Code Online (Sandbox Code Playgroud)

这将告诉工作人员断开连接并关闭,并在终止进程之前关闭所有连接。请注意,这会在客户端中引发错误,因为在没有回复的情况下连接中断。可能有更优雅的方式。

请注意,执行此操作的正确方法可能是与部署集群管理器之一进行交互。例如,LocalCluster有一个close()可以直接调用的面向用户的方法。

- 编辑 -

client.shutdown() 现在可用。