我正在使用cron作业下载网页并使用Google App Engine进行保存。
5秒钟后,我发现Dealine超出错误。
如何避免错误。搜索这个网站,我可以延长urlfetch的时间限制。但它不是urlfetch导致问题。事实是我无法执行任务超过5秒。
例如,我尝试过这个修复程序,但只有在我自己运行页面时才会有效,而不是通过cron作业:
HTTPException: Deadline exceeded while waiting for HTTP response from URL: #deadline
答案 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?