При создании HTTPSConnection
с httplib
достаточно просто установить время ожидания:
connection = httplib.HTTPSConnection('some.server.com', timeout=10)
connection.request('POST', '/api', xml, headers={'Content-Type': 'text/xml'})
response = connection.getresponse().read()
Существуют различные части этой операции, например, соединение принято и получен ответ.
Применяется ли таймаут ко всей операции? Будет ли истек тайм-аут, если удаленный хост принимает соединение, но никогда не отправляет ответ? Я хочу быть уверен, что установка таймаута гарантирует, что операции блокируются максимум на 10 секунд.
Некоторый контекст:
Я подключаюсь к внешнему API и хочу заблокировать операцию. Только не более 10 секунд, и если он блокируется более 10 секунд, прекратите блокировку и вызовите исключение. Я правильно обрабатываю случай, когда внешний API недоступен, но не уверен, когда он принимает мое соединение, но не отвечает.