0
0 комментариев

Есть функция:

def checker(syn_list):
    pool = multiprocessing.Pool(PROCESS_COUNT, maxtasksperchild=10)
    async_result = pool.map_async(check_syn, syn_list)
    results = async_result.get()
    pool.close()
    pool.join()
    return results

check_syn проверяет урл (там делается urllib2.urlopen() без таймаута) и возвращает код ответа либо ошибку из исключений.

Некоторые урлы битые (какие именно — до проверки непонятно), ответ от сервера не приходит вообще, исключение не генерится. Процессы подвисают, со временем новые просто перестают создаваться.

Как этого подвисания избежать?

P.S.: Python 2.7


Добавить комментарий