在等待HTTP响应,Python,Google App Engine时超过了截止日期

时间:2014-08-05 18:59:33

标签: google-app-engine urlfetch deadlines

我正在使用cron作业下载网页并使用Google App Engine进行保存。

5秒钟后,我发现Dealine超出错误。

如何避免错误。搜索这个网站,我可以延长urlfetch的时间限制。但它不是urlfetch导致问题。事实是我无法执行任务超过5秒。

例如,我尝试过这个修复程序,但只有在我自己运行页面时才会有效,而不是通过cron作业:

HTTPException: Deadline exceeded while waiting for HTTP response from URL: #deadline

1 个答案:

答案 0 :(得分:5)

Cron作业最多可以运行10分钟,但这并不意味着URLFetch在此之前无法超时。 URLFetch的默认超时时间恰好是5秒,但你可以提高它。

  

"您可以设置请求的截止日期,即服务等待响应的最长时间。默认情况下,获取的截止时间为5秒。 HTTP请求的最长期限为60秒,任务队列和cron作业请求的最长期限为10分钟。使用URLConnection接口时,该服务使用连接超时(setConnectTimeout())加上读取超时(setReadTimeout())作为截止日期。"

请参阅:https://developers.google.com/appengine/docs/java/urlfetch/?csw=1#Requests

  

" cron作业将在一天的给定时间使用HTTP GET请求调用URL。由cron调用的HTTP请求最多可以运行10分钟,但受到与其他HTTP请求相同的限制。"

请参阅:https://developers.google.com/appengine/docs/python/config/cron

此外,请查看此旧版stackoverflow问题,并提出非常类似的问题。 If Google App Engine cron jobs have a 10 minute limit, then why do I get a DeadlineExceededError after the normal 30 seconds?