2016-07-10 9 views
1

Ich benutze multiprocessing.Pool, um eine Variable durchlaufen und API-Aufrufe an ein Drittanbieter-Programm zu machen. Das Problem ist, dass die API einige Garbage-Collection-Probleme hat, also brauche ich einen komplett neuen Prozess für jeden Variablenwert, den ich ausführen möchte. Gibt es eine Möglichkeit, zu erzwingen, Multiprozessing zu schließen und einen neuen Prozess für jeden Wert in meiner Liste zu starten?Python Multiprocessing.Pool neuer Prozess für jede Variable

Ein einfaches Beispiel für meinen Code ist dies:

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

Dank!

Antwort

1

Einstellung maxtasksperchild-1 sollte Pool zwingen, einen neuen Prozess für jede Aufgabe zu erstellen:

pool = Pool(maxtasksperchild=1) 
+0

Ich war rundum in der mulitprocessing Dokumentation zu graben, aber irgendwie verpasst, dass. Markierung als gelöst, danke! – user3368693

Verwandte Themen