我们使用的是开发商蟒蛇引导与Python数据2.15库,按照例如App Engine的说明。 createSite( “测试点中的一个”,描述= “测试位点一个”,source_site =( “ https://sites.google.com/feeds/site/googleappsforus.com/google-site-template ”))
我们每次使用的时间,我们得到的是否是不可预测的响应。
例外:HTTPException:在等待URL HTTP响应期限超过: https://sites.google.com/feeds/site/googleappsforyou.com
是否有人遇到同样的问题? 它是应用服务引擎或网站的API有关?
问候,
超过截止时间在等待来自URL HTTP响应实际上是一个DeadlineExceededError。 当你在进行一个HTTP请求,App Engine的地图上的这个请求的URLFetch。 网址提取都有自己的期限是可配置的。 请参阅网址提取文档 。
看来你的客户端库捕获DeadlineExceededError并抛出HTTPException。 你的客户机库或者通过限期的URLFetch(你需要改变)或违约大限不足为您的要求。
尝试设置默认的URLFetch截止日期是这样的:
from google.appengine.api import urlfetch
urlfetch.set_default_fetch_deadline(45)
另外,还要确保检查出有DeadlineExceededErrors处理在官方文档。
请记住,任何最终用户发起的请求必须在60秒内完成,否则会遇到DeadlineExceededError。 见App Engine的Python运行时请求计时 。
与非常最新版本的工作时接受的解决方案并没有为我工作httplib2
和googleapiclient
。 这个问题似乎是httplib2.Http
通过它的超时参数通过一路urlfetch
。 由于它的默认值None
, urlfetch
设置该请求5S极限,不论任何默认你设置的urlfetch.set_default_fetch_deadline
。 看来,你有几种选择。
第一个选项-你可以明确地传递的一个实例httplib2.Http
各地:
http = httplib2.Http(timeout=30)
...
client.method().execute(http=http)
第二个选项,您可以使用套接字1设置默认值:
import socket
socket.setdefaulttimeout(30)
第三个选项,你可以告诉AppEngine上使用的请求2个插座。 要做到这一点,你修改app.yaml
:
env_variables:
GAE_USE_SOCKETS_HTTPLIB : 'anyvalue'
1这可能仅适用于付费应用工作,因为套接字API可能不存在未付应用程序...
2我几乎可以肯定,这将只针对付费应用工作,因为套接字API不会为未付的应用程序功能...
文章来源: HTTPException: Deadline exceeded while waiting for HTTP response from URL: #deadline