即使在后端运行TaskQueue,也超过了截止日期错误

 夜晨在行动 发布于 2023-02-07 19:27

我在Deadline Exceeded error上遇到了一些问题。基本上,我正在使用Mechanize在URL中进行一些webscrapping 。所以当尝试执行

br.open(url)

我有这个错误

HTTPException:等待URL:my-url的HTTP响应时超过了截止日期

我已经阅读了说明使用后端的文档(我正在使用具有5个实例的动态后端B4_1G类),但是仍然会在60秒内发生此错误。并且根据文档,使用TaskQueueBackends时,超时应延长到10分钟。

这是我如何将操作分配给TaskQueue上的runnnig,并将其目标放在后端的第一个实例上。

taskqueue.add(url='/crons/myworker', target='1.myworker')

这是backends.yaml

backends:
- name: myworker
  class: B4_1G
  instances: 5
  options: dynamic

对可能发生的事情有任何想法吗?谢谢。

1 个回答
  • 在应用引擎上,任何涉及通过HTTP获取数据的请求都不会超过60秒。

    10分钟的限制是指任务本身-它们最多可以运行10分钟。

    因此,GAE可能不是最佳选择,因为如果您的请求平均需要花费60秒以上的时间,那么您只能使用它提供的urlfetch等版本。

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

    https://developers.google.com/appengine/docs/python/urlfetch/

    因此,任务最多可以运行10分钟,而url提取最多可以运行60秒。从前端或后端在哪里执行urlfetch操作都没有关系,限制是相同的。

    2023-02-07 19:29 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有