GAE和Urlfetch

时间:2013-02-08 22:41:16

标签: python google-app-engine

我在GAE 1.7.4上使用urlfetch API ....我尝试通过以下方式获取:

result=urlfetch(http://localdomain:8080/static/tabconfig.json)  

我已经通过app.yaml中的处理程序打开了我的静态目录,并通过浏览器下载了这个json文件。

但是当我尝试在GAE中进行urlfetch时,它会给我一个“截止日期超出错误”。 GAE是否限制具有相同域的URL的提取?

谢谢!

2 个答案:

答案 0 :(得分:2)

正如tesdal在评论中已经说过,开发服务器是单线程的。这意味着它一次只能处理一个请求。因此,如果您向脚本发起请求,并且该脚本会在您自己的服务器上设置页面,那么您基本上处于死锁状态,因为您的原始请求正在等待您的urlfetch返回,而您的urlfetched请求正在等待,因为服务器正在处理您的原始请求。

App Engine团队还在开发一个有线程的实验性新开发服务器,请查看此视频http://www.youtube.com/watch?v=_rEDCQtj4fo

如果tesdal发表评论作为答案,他是第一个发表评论的人。

答案 1 :(得分:0)

您可以为请求设置截止日期,即服务等待响应的最长时间。默认情况下,获取的截止时间为5秒。 HTTP请求的最长期限为60秒,任务队列和cron作业请求的最长期限为60秒。

result = urlfetch( url=http://localdomain:8080/static/tabconfig.json, deadline=60 )