0

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

5 秒后,我得到一个超出 Deline 的错误。

我怎样才能避免错误。在这个网站上搜索,我可以延长 urlfetch 的时间限制。但引起问题的不是 urlfetch 。这是我无法运行任务超过 5 秒的事实。

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

HTTPException:等待来自 URL 的 HTTP 响应时超过了截止日期:#deadline

4

1 回答 1

3

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

“您可以为请求设置截止时间,服务将等待响应的最长时间。默认情况下,获取的截止时间为 5 秒。HTTP 请求的最大截止时间为 60 秒,任务队列的最大截止时间为 10 分钟和 cron 作业请求。使用 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 问题。 如果 Google App Engine cron 作业有 10 分钟的限制,那么为什么在正常 30 秒后我会收到 DeadlineExceededError?

于 2014-08-05T19:07:58.757 回答