我遇到了截止日期超出错误的问题。基本上我正在使用 Mechanize 在URL中进行一些网页抓取。所以当试图执行
时br.open(url)
我有这个错误
HTTPException:等待HTTP响应时超过截止时间 网址:my-url
我已经阅读documentation所说的使用后端(我正在使用动态后端,B4_1G类有5个实例),但仍然会在60秒内发生此错误。根据文档,当使用 TaskQueue 和后端时,超时应延长至10分钟。
以下是我在TaskQueue上将操作分配给runnnig的方法,它的目标是我的后端的第一个实例。
taskqueue.add(url='/crons/myworker', target='1.myworker')
以下是 backends.yaml 。
backends:
- name: myworker
class: B4_1G
instances: 5
options: dynamic
有关可能发生的事情的任何想法?谢谢。
答案 0 :(得分:5)
没有涉及通过HTTP获取数据的请求在应用引擎上花费的时间超过60秒。
10分钟限制是指任务本身 - 它们可以运行长达10分钟。
所以GAE可能不是最好的选择,因为你只能使用它提供的urlfetch等版本,如果你的请求平均需要花费60秒以上的话。
您可以为请求设置截止日期,最长时间 服务将等待回应。默认情况下,获取的截止日期 是5秒。 HTTP请求的最长截止时间为60秒 任务队列和cron作业请求需要10分钟。
https://developers.google.com/appengine/docs/python/urlfetch/
因此,一项任务最长可持续10分钟,网址获取时间最长为60秒。从前端或后端执行urlfetch操作的位置无关紧要,限制是相同的。