如果 Google App Engine cron 作业有 10 分钟限制,那么为什么我会在正常的 30 秒后收到 DeadlineExceededError ?

2024-04-10

根据https://developers.google.com/appengine/docs/python/config/cron https://developers.google.com/appengine/docs/python/config/croncron 作业可以运行 10 分钟。但是,当我尝试通过以管理员身份登录时转到 cron 作业的 url 来测试它时,它会超时并出现 DeadlineExceededError。据我所知,这大约发生在 30 秒内,这是请求的非 cron 限制。我是否需要做一些特殊的事情来使用 cron 规则与正常限制进行测试?

这就是我正在做的:

  • 转到 cron 作业的 url
  • 这调用了我的处理程序,它调用我的 py 脚本中的单个函数
  • 该函数对 google 的云 sql 进行数据库调用,并循环遍历结果行,在每一行上调用一个使用 eBay 的 api 获取一些数据的函数
  • 来自 ebay api 调用的数据存储在一个数组中,以便在所有调用完成后全部写回数据库。
  • 循环完成后,它将数据写入数据库并返回到处理程序
  • 处理程序打印完成消息

在循环 eBay API 调用期间它总是会出现问题。大约需要在循环中进行 500 个 api 调用。

知道为什么我没有获得完整的 10 分钟时间吗?

编辑:如果您认为有帮助,我可以发布实际代码,但我假设这是一个我做错的过程,而不是代码中的错误,因为如果我将查询限制为大约 60 个 api,它就可以正常工作来电。


GAE 执行 cron 作业的方式允许其运行 10 分钟。这可能是通过检查用户代理、IP 地址或其他方法来完成的(我只是在这里猜测)。仅仅因为您设置了一个 cron 作业来访问应用程序中的 URL,并不意味着来自浏览器的标准 HTTP 请求将允许它运行 10 分钟。

测试作业是否有效的方法是在没有限制的本地开发服务器上进行测试。或者等到您的 cron 作业执行并检查日志是否有任何错误。

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果 Google App Engine cron 作业有 10 分钟限制,那么为什么我会在正常的 30 秒后收到 DeadlineExceededError ? 的相关文章

随机推荐