当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python distributed.Client.run用法及代码示例


用法:

run(function, *args, workers: list[str] | None = None, wait: bool = True, nanny: bool = False, on_error: Literal['raise', 'return', 'ignore'] = 'raise', **kwargs)

在任务调度系统之外的所有工作人员上运行函数

这会立即在所有当前已知的工作人员上调用一个函数,阻塞直到这些结果返回,然后将结果作为由工作人员地址键入的字典异步返回。此方法一般用于收集诊断信息或安装库等副作用。

如果您的函数采用名为 dask_worker 的输入参数,则该变量将由工作程序本身填充。

参数

function可调用的

要运行的函数

*args元组

远程函数的可选参数

**kwargsdict

远程函数的可选关键字参数

workers列表

在其上运行函数的工人。默认为所有已知的工人。

wait布尔值(可选)

如果函数是异步的,是否要等到该函数完成。

nanny布尔,默认 False

是否在保姆上运行function。默认情况下,该函数在工作进程上运行。如果指定,workers 中的地址仍应为工人地址,而不是保姆地址。

on_error: “raise” | “return” | “ignore”

如果函数在工作人员上引发错误:

增加

(默认)在客户端重新引发异常。其他工人的输出将丢失。

返回

返回 Exception 对象而不是 worker 的函数输出

忽视

忽略异常并从结果字典中删除工作人员

例子

>>> c.run(os.getpid)  
{'192.168.0.100:9000': 1234,
 '192.168.0.101:9000': 4321,
 '192.168.0.102:9000': 5555}

使用 workers= 关键字参数将计算限制为特定工作人员。

>>> c.run(os.getpid, workers=['192.168.0.100:9000',
...                           '192.168.0.101:9000'])  
{'192.168.0.100:9000': 1234,
 '192.168.0.101:9000': 4321}
>>> def get_status(dask_worker):
...     return dask_worker.status
>>> c.run(get_hostname)  
{'192.168.0.100:9000': 'running',
 '192.168.0.101:9000': 'running}

在后台运行异步函数:

>>> async def print_state(dask_worker):  
...    while True:
...        print(dask_worker.status)
...        await asyncio.sleep(1)
>>> c.run(print_state, wait=False)

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 distributed.Client.run。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。