HTTPException:截止同时等待来自URL HTTP响应突破:#deadline(HTTPE

2019-07-19 06:20发布

我们使用的是开发商蟒蛇引导与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有关?

问候,

Answer 1:

超过截止时间在等待来自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运行时请求计时 。



Answer 2:

与非常最新版本的工作时接受的解决方案并没有为我工作httplib2googleapiclient 。 这个问题似乎是httplib2.Http通过它的超时参数通过一路urlfetch 。 由于它的默认值Noneurlfetch设置该请求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