Google App Engine Cron的时间表和长度

Joh*_*ohn 2 cron google-app-engine cron-task

cron时间表的最小值和最大值是多少?这个cron可以运行多久?24小时?以下代码与计划一起工作是1分钟.

   cron:
    - description: test
      url: /test
      schedule: every 1 minutes
Run Code Online (Sandbox Code Playgroud)

但我想让它30秒

所以我写了

 cron:
    - description: test
      url: /test
      schedule: every 30 seconds
Run Code Online (Sandbox Code Playgroud)

但它只是在我更新应用程序时返回错误.

Ibr*_*ief 7

Cron不支持不到一分钟的粒度.至于GAE中的cron运行多长时间,文档说:

由cron调用的HTTP请求最多可以运行10分钟,但受到与其他HTTP请求相同的限制.

这告诉我,cron请求与任务队列请求的处理方式相同.对前端实例的请求有10分钟完成执行,而对后端的请求有24小时的截止时间.

编辑: 如果你的cron 确实需要30秒的粒度,可以通过在TaskQueue中利用Task 的countdown属性来解决一些问题.步骤如下:

  1. 有一分钟的cron执行与预期/测试servlet不同的servlet.
  2. 让这个servlet创建两个指向预期/测试servlet的任务.每个任务的countdown属性都有30和60个值.
  3. 将两个任务都推送到TaskQueue.

或者,您可以在servlet启动后30秒和60秒预先计算预期的ETA,并将其放在eta属性中,以获得更好的粒度.

最后需要注意的时,etacountdown不能保证该任务将恰好在规定的时间执行.如果您的队列已饱和,或者您的实例过载,则可能会出现一些延迟.