2016-07-10 8 views
1

Я использую multiprocessing.Pool, чтобы перебрать переменную и вызвать вызовы API для сторонней программы. Проблема в том, что API имеет некоторые проблемы с сборкой мусора, поэтому мне нужен совершенно новый процесс для каждого значения переменной, которое я хочу запустить. Есть ли способ заставить многопроцессорность закрыть и запустить новый процесс для каждого значения в моем списке?Python multiprocessing.Pool новый процесс для каждой переменной

Простой пример моего кода заключается в следующем:

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

Спасибо!

ответ

1

Установка maxtasksperchild в 1 должны заставить бассейн, чтобы создать новый процесс для каждой задачи:

pool = Pool(maxtasksperchild=1) 
+0

Я копал все вокруг в документации mulitprocessing, но как-то упустил. Маркировка как решена, спасибо! – user3368693

Смежные вопросы