У меня есть этот код в верхней части моего Google App программы двигателя:HttpException: Срок превышено время ожидания ответа HTTP от URL
from google.appengine.api import urlfetch
urlfetch.set_default_fetch_deadline(60)
Я использую нож, чтобы загрузить материал:
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [ ('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64)') ]
resp = opener.open('http://www.example.com/')
исключения бросок через 5 секунд:
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 422, in _open
'_open', req)
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 1222, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/urllib2.py", line 1187, in do_open
r = h.getresponse(buffering=True)
File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/gae_override/httplib.py", line 524, in getresponse
raise HTTPException(str(e))
HTTPException: Deadline exceeded while waiting for HTTP response from URL: http://www.example.com
Как я могу избежать ошибок?
Другой способ сделать это, если вы не можете сделать это в течение временного ограничения времени для запроса http, заключается в том, чтобы сделать работу [задачей] (https://cloud.google.com/appengine/docs/python/ taskqueue /) или [задание mapreduce] (https://code.google.com/p/appengine-mapreduce/). Эти два способа имеют более гибкие временные ограничения для методов и HTTP-запроса. У обычного HTTP-запроса hae есть ограничение на 15-20 секунд, поэтому, если вам нужны более трудоемкие задания, есть другие альтернативы. –