我在 GAE 1.7.4 上使用 urlfetch API....我尝试通过以下方式获取:
result=urlfetch(http://localdomain:8080/static/tabconfig.json)
我已经通过 app.yaml 中的处理程序打开了我的静态目录,并通过浏览器下载了这个 json 文件。
但是当我尝试在 GAE 中执行 urlfetch 时,它给了我一个“超出期限错误”。GAE 是否限制从具有相同域的 url 获取?
谢谢!
我在 GAE 1.7.4 上使用 urlfetch API....我尝试通过以下方式获取:
result=urlfetch(http://localdomain:8080/static/tabconfig.json)
我已经通过 app.yaml 中的处理程序打开了我的静态目录,并通过浏览器下载了这个 json 文件。
但是当我尝试在 GAE 中执行 urlfetch 时,它给了我一个“超出期限错误”。GAE 是否限制从具有相同域的 url 获取?
谢谢!
正如 tesdal 在评论中已经说过的那样,开发服务器是单线程的。这意味着它一次只能处理一个请求。因此,如果您向脚本发起请求,并且该脚本 urlfetches 在您自己的服务器上获取页面,那么您基本上处于死锁状态,因为您的原始请求正在等待您的 urlfetch 返回,而您的 urlfetched 请求正在等待,因为服务器正在处理您的原始请求。
App Engine 团队还在开发一个实验性的线程化新开发服务器,请观看此视频http://www.youtube.com/watch?v=_rEDCQtj4fo
如果 tesdal 发布他的评论作为答案,他是第一个发布此评论的人。
您可以设置请求的最后期限,即服务等待响应的最长时间。默认情况下,获取的最后期限是 5 秒。HTTP 请求的最长期限为 60 秒,任务队列和 cron 作业请求的最长期限为 60 秒。
result = urlfetch( url=http://localdomain:8080/static/tabconfig.json, deadline=60 )