2017-08-24 1 views
1

dask.distributedワーカーを実行すると、タスク関数にスローされた例外がスケジューラに伝播され、ジョブ全体が強制終了されます。スケジューラが(別のワーカーに)潜在的にそれを再試行するように、正常にタスクを失敗させる方法はありますか?Dask worker graceful task failure

答えて

1

現在、Dask.distributedスケジューラは、例外をタスクの真の値として解釈します。自動再試行は現在サポートされていません(2017年8月現在)。しかし、これは頻繁に要求されています。近い将来にこの変化を見るのは驚かないだろう。

タスク内にリトライロジックを追加することをおすすめします。

def f(*args, **kwargs): 
    for i in range(n_retries): 
     try: 
      # your code 
      # return result 
     except Exception: 
      pass 

future = client.submit(f, *args, **kwargs) 
+0

すぐに回答いただきありがとうございます。このような機能がない場合は、現在、単一のワーカー内で再試行を実行しています。 – evilkonrex