У меня есть 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(...)
случайным образом убивают поток, в котором выполняется вызов?