Моя проблема очень проста. У меня есть код try/except
. В попытке у меня есть попытки HTTP-запросов и, кроме того, у меня есть несколько способов справиться с исключениями, которые я получаю.python Время попытки, кроме
Теперь я хочу добавить параметр времени в свой код. Это означает, что попытка будет длиться только «n» секунд. иначе поймать его за исключением.
В свободном языке это будет выглядеть следующим образом:
try for n seconds:
doSomthing()
except (after n seconds):
handleException()
это середина кода. Не функция. и я должен поймать тайм-аут и обработать его. Я не могу просто продолжить код.
while (recoveryTimes > 0):
try (for 10 seconds):
urllib2.urlopen(req)
response = urllib2.urlopen(req)
the_page = response.read()
recoveryTimes = 0
except (urllib2.URLError, httplib.BadStatusLine) as e:
print str(e.__unicode__())
print sys.exc_info()[0]
recoveryTimes -= 1
if (recoveryTimes > 0):
print "Retrying request. Requests left %s" %recoveryTimes
continue
else:
print "Giving up request, changing proxy."
setUrllib2Proxy()
break
except (timedout, 10 seconds has passed)
setUrllib2Proxy()
break
решение мне нужно для try (for 10 seconds)
и except (timeout, after 10 seconds)
Вы ищете Время ожидания HTTPREQUEST? Если да, то можно корректно обрабатывать – therealprashant
возможный дубликат [Тайм-аут при вызове функции Python] (http://stackoverflow.com/questions/492519/timeout-on-a-python-function-call) – Daenyth
Какой вы используете для обработки HTTP-запросов? – dhke