2016-07-10 6 views
1

変数をループしてサードパーティプログラムにAPI呼び出しを行うために、multiprocessing.Poolを使用しています。問題は、APIにガベージコレクションの問題があることです。そのため、実行する変数の値ごとに完全に新しいプロセスが必要です。マルチプロセッシングを強制終了して、リスト内の各値に対して新しいプロセスを起動する方法はありますか?Pythonマルチプロセッシング。各変数の新しいプロセスを閉じます。

from multiprocessing import Pool 
pool = Pool() 
vals = range(0,100) 
result = pool.map(api_call_function, vals) 

ありがとう:

私のコードの簡単な例はこれです! 1maxtasksperchildを設定

答えて

1

は、各タスクのための新しいプロセスを作成するためにプールを強制する必要があります。

pool = Pool(maxtasksperchild=1) 
+0

を私はmulitprocessingドキュメント内のすべての周り掘り、何とかそれを逃しました。解決してマークする、ありがとう! – user3368693

関連する問題