當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。