У меня серьезная проблема с многопроцессорным модулем Python. Я создаю инструмент управления уязвимостями.Он берет список пакетов linux, а затем ищет доступные CVE для каждого пакета, вызывая RedHat API.Я использую multiprocessing.dummy для реализации пула потоков для достижения этой работы.Проблема в том, что после успешных вызовов API мой скрипт зависает / зависает, и у меня нет возможности отладить это.Вот фрагмент моего кода
from multiprocessing.dummy import Pool as ThreadPool
def check_vulnerability(package):
done.append(package)
try:
time.sleep(1)
headers = {'User-agent' : 'Mozilla/11.0'}
with requests_retry_session() as s:
s.headers.update(headers)
print "Processing package "+package+"=>"+str(float(len(done))/len(packages)*100)+"%"
req = requests.get('https://access.redhat.com/labs/securitydataapi/cve.xml?package='+package, headers = headers, verify=True)
if req.text != '':
soup = BeautifulSoup(req.text, 'xml')
else:
pass
except Exception as e:
#print "#################################################################################"
#print e
#print packages"#################################################################################"
#Some code to process req.text
def main():
start_time = time.time()
global packages
packages = fetch_packages_rpm() #list of strings ()
p = ThreadPool(int(results.thread))
all = p.map(check_vulnerability, packages)
После некоторых успешных распечаток мой скрипт зависает и не может отладить это (я думаю, что поток ожидает рукопожатие ssl или что-то в этом роде, и он находится в официанте.aquire ()).Любая помощь высоко ценится