如果我有一个distributed.Client
实例,我可以用它来关闭远程集群吗? 即杀死所有工作线程并关闭调度程序?
如果使用Client
实例无法做到这一点,除了手动杀死每个远程进程之外,还有其他方法吗?
没有专门针对此的客户端函数。
调度程序有一个close()
方法,您可以使用run_on_scheduler
调用该方法
c.run_on_scheduler(lambda dask_scheduler=None:
dask_scheduler.close() & sys.exit(0))
这将告诉工作人员断开连接并关闭,并将在终止进程之前关闭所有连接。请注意,这会在客户端中引发错误,因为连接在没有回复的情况下断开。可能还有更优雅的方式。
请注意,执行此操作的正确方法可能是与其中一个部署群集管理器进行交互。例如,LocalCluster
有一个可以直接调用的面向用户的close()
方法。
--编辑--
client.shutdown()
现已推出。