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

doe*_*qts 3 python cron google-app-engine timeout

根据https://developers.google.com/appengine/docs/python/config/cron cron作业可以运行10分钟.但是,当我尝试通过以管理员身份登录时转到cron作业的URL来测试它时,它会因DeadlineExceededError而超时.最好的我可以告诉这种情况发生在大约30秒内,这是请求的非cron限制.我是否需要做一些特殊的事情来测试cron规则与正常限制?

这是我正在做的事情:

  • 去cron工作的网址
  • 这会调用我的处理程序,它在我的py脚本中调用单个函数
  • 这个函数对谷歌的云sql进行数据库调用并循环生成的行,在使用ebay的api的每一行上调用一个函数来获取一些数据
  • 来自ebay api调用的数据存储在一个数组中,以便在完成所有调用后将所有数据写回数据库.
  • 循环完成后,它会将数据写入数据库并返回给处理程序
  • 处理程序打印完成的消息

它在循环ebay api调用期间始终存在问题.这类似于必须在循环中进行的500个api调用.

知道为什么我没有得到整整10分钟吗?

编辑:我可以发布实际代码,如果你认为它会有所帮助,但我认为这是一个我做错了的过程,而不是代码中的错误,因为如果我将查询限制在大约60 api它就可以正常工作调用.

som*_*ne1 9

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

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

希望这可以帮助!