У меня есть следующий код:
def process_url(url):
print '111'
r = requests.get(url)
print '222' # <-- never even gets here
return
urls_to_download = [list_or_urls]
PARALLEL_WORKERS = 4
pool = Pool(PARALLEL_WORKERS)
pool.map_async(process_url, urls_to_download)
pool.close()
pool.join()
Каждый раз, когда я это делаю, он запускает первые четыре элемента, а затем просто зависает. Я не думаю, что это проблема тайм-аута, так как загрузка четырех URL-адресов происходит очень быстро. Только после получения этих первых четырех он зависает на неопределенный срок.
Что мне нужно сделать, чтобы исправить это?
close
/join
вызываются сразу послеmap_async
.close
просто означает, что больше нельзя отправлять задачи, аjoin
означает «Подождите, пока все ожидающие задачи не будут выполнены». - person dano   schedule 20.09.2014