Вызов по запросу. Get (...) случайно убивает поток.Зачем? - PullRequest
0 голосов
/ 07 июня 2018

У меня есть Python 2.7 скрипт , в котором я выполняю GET-вызовы, используя requests.get(...) для большого количества серверов последовательным образом.Иногда, однако, поток, в котором я делаю вызовы, прерывается во время вызова requests.get(...), и я не знаю почему.Я знаю это, потому что я печатал журналы до и после звонка, а последняя запись журнала всегда та, что была до звонка.Вызовы выполняются с помощью следующей команды:

r = requests.get("http://" + node.hostname + ":2082/api/config", timeout=1)

Это основной каркас метода, выполняющего вызовы:

def refresh_current_configs(number):
    while True:
        try:
            for node in nodes:
                try:
                    r = requests.get("http://" + node.hostname + ":2082/api/config", timeout=1)
                except (ConnectionError, requests.exceptions.Timeout) as e:
                    unreachable_nodes.add(node.hostname)
                    continue

                # Do processing

        except Exception,e:
            logger.error(e + " -- " + str(number))
        time.sleep(1000)

Вот так я создаю поток, в которомзапустить метод refresh_current_configs в основном потоке:

consumer = threading.Thread(target=refresh_current_configs,args=(number,),name='config_refresher')
consumer.start()

Есть идеи, почему вызовы requests.get(...) случайным образом убивают поток, в котором выполняется вызов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...