Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 26, 2017 18:34:32

Mr.Anderson
Зарегистрирован: 2015-02-06
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Зависают процессы multiprocessing

Доброго времени всем. Может знает, кто решить такую проблему.
Ниже часть программы:

 def check_ip(host):
    print('Try host: ' + str(host))
    try:
        response = requests.get(host, timeout=3)
        if 'RT-' in response.headers['WWW-Authenticate']:
            print('Rout found: ' + str(host))
            if login_80(host):
                print('Get Router: ' + str(host))
    except Exception:
        try:
            response = requests.get(host + ':8080', timeout=3)
            if 'RT-' in response.headers['WWW-Authenticate']:
                if login_8080(host):
                    print('Get Router: ' + str(host))
        except Exception:
            return False
def main_function(cidrlist):
    cidr_list = build_ip_address_from_cidr(cidrlist)
    print('Total IPs: ' + str(len(cidr_list)))
    pool = TPool(250)
    result = pool.map(check_ip, cidr_list)
    pool.close()
    pool.join()
    return result
def run_main():
    cidr = build_cidr_list()
    pool = Pool(6)
    result = pool.map(main_function, cidr)
    pool.close()
    pool.join()
    return result
run_main()

Проблема в том, что через какое то время процессы тупо зависают и ничего не делают.
Суть программы, она получает список из CIDR диапазонов, эти диапазоны переводит в список IP адресов и каждый IP проверяется. Сначала программы нормально работает, набирает по 6 диапазонов и отрабатывает их, но спустя какое то время, процессы зависают по очередно и ничего не происходит, возможно проблема в логике или еще где то. Прошу помощи.

Офлайн

#2 Фев. 26, 2017 18:43:10

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зависают процессы multiprocessing

Mr.Anderson
Запустите программу в дебаггере (например пайшарма), выполните её пошагово и увидите на чем она зацикливается.



Офлайн

#3 Фев. 26, 2017 18:44:42

Mr.Anderson
Зарегистрирован: 2015-02-06
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Зависают процессы multiprocessing

FishHook
Mr.AndersonЗапустите программу в дебаггере (например пайшарма), выполните её пошагово и увидите на чем она зацикливается.
Долго дебажить придется, прежде чем повиснуть она успевает порядка 600 диапазонов отработать.

Офлайн

#4 Фев. 27, 2017 04:11:14

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Зависают процессы multiprocessing

А сколько живых ip в подсети? Возможно процессы висят в ожидании таймоутов?



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Фев. 27, 2017 16:01:36

Mr.Anderson
Зарегистрирован: 2015-02-06
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Зависают процессы multiprocessing

PooH
А сколько живых ip в подсети? Возможно процессы висят в ожидании таймоутов?
Тайм ауты установлены и обрабатываются.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version