Сокет
def _reset_timeout(self, timeout=None):
socket.setdefaulttimeout(timeout)
def _set_timeout(self, timeout=None):
if timeout:
socket.setdefaulttimeout(timeout)
default_timeout = socket.getdefaulttimeout()
try:
self._set_timeout(timeout)
req = urllib2.Request(url)
response = urllib2.urlopen(request)
finally:
self._reset_timeout(default_timeout)
имеет свое время ожидания.Для каждого вашего запроса, установите желаемое время ожидания, а затем сбросьте время ожидания (во всех случаях, включая сбои)
Может случиться так, что в некоторых случаях сервер не отвечает и время ожидания истекаетдольше, чем вы установили.
Здесь, в приведенном выше коде, мы получаем тайм-аут по умолчанию (какой бы он ни был), и для нашего запроса мы устанавливаем его на то, что хотим, а затем сбрасываем на то, что былочто мы ничего не меняем.