2017-03-07 87 views

回答

3

在pmap docstrings中,您可以看到這已經在那裏使用retry_關鍵字參數實現了。

pmap([::AbstractWorkerPool], f, c...; distributed=true, batch_size=1, 
on_error=nothing, retry_n=0, retry_max_delay=DEFAULT_RETRY_MAX_DELAY, 
retry_on=DEFAULT_RETRY_ON) -> collection 

...任何錯誤PMAP從處理的 收集剩餘停止。要覆蓋此行爲,可以通過參數on_error指定處理函數的錯誤 ,該參數只接受一個參數 ,即異常。該功能可以通過 重新拋出錯誤停止處理,或者繼續返回任何值,然後將 與結果內聯地返回給調用者。

無法計算可以 也經由retry_on,retry_n,retry_max_delay,這是 穿過重試作爲參數retry_on,n和分別max_delay 被重試。如果指定了批次,並且整個批次都失敗,則重試批次中的所有項目 。

我不認爲@parallel宏有這樣的東西。但是你可以使用函數來擴展你的原始函數來處理錯誤。您可以通過查看pmap的定義https://github.com/JuliaLang/julia/blob/v0.5.0/base/pmap.jl來查看大部分實現細節。

基本策略就是捕捉錯誤(以及潛在的數據),並使用相同的工人重試,或者如果該人失敗,則重試。我認爲。

+0

感謝那些有用的指針! – crackjack