У меня есть программа Python, которая отправляет несколько (около 5-6) запросов на запросы параллельно, используя разные потоки для каждого опроса через пакет запросов. И я понял, что некоторые из моих потоков иногда просто замерзают. Когда это произойдет, сервер, на который я отправляю запрос, не получает запрос. Также я установил тайм-аут запроса, и он не работает.Запросы на Python иногда зависают
try:
print("This line prints")
response = requests.head(poll_request_url, timeout=180)
print("This line does not print when freeze occurs")
except ReadTimeout:
print("Request exception.")
except RequestException as e:
print("Request exception.")
except Exception:
print("Unknown exception.")
print("This line does not print either when freeze occurs.")
Я делаю это на аппарате Raspberry Pi 2 с операционной системой Raspbian.
Я использовал эту же программу без проблем, когда использовал Python 2.7. Недавно я переключился на Python 3.5. Я тестировал, используя обе версии запросов с 2.8.1 и 2.9.1.
Эта проблема возникает не часто, но происходит 2-3 раза в день на разных потоках.
В чем может быть проблема? Как я могу отладить это?
Редактировать: Проблема решена путем обновления ядра Linux.
Я занимаюсь всеми исключениями, включая Timeout, и когда происходит тайм-аут, он успешно завершает исключение. Когда тайм-аут не происходит, и происходит замораживание, эта строка никогда не выполняется и не генерируется исключение. –
Я добавил еще немного контекста для кода, чтобы отразить обработку исключений. –
Это должно быть не время ожидания во время шага подключения, как вы говорите, вы никогда не получаете запрос на сервере. –