Google App Engine Cron的时间表和长度

时间:2013-03-19 10:35:01

标签: google-app-engine cron cron-task

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

   cron:
    - description: test
      url: /test
      schedule: every 1 minutes

但我想让它30秒

所以我写了

 cron:
    - description: test
      url: /test
      schedule: every 30 seconds

但是当我更新应用程序时它只会返回错误。

1 个答案:

答案 0 :(得分:7)

Cron不支持不到一分钟的粒度。至于GAE中的cron运行多长时间,the docs said

  

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

这告诉我,cron请求与任务队列请求的处理方式相同。对前端实例的请求有10分钟完成执行,而请求后端have a 24-hour deadline.

修改 如果确实在您的cron上需要30秒的粒度,可以通过利用TaskQueue中的任务countdown property来解决一些问题。步骤如下:

  1. 有一分钟的cron执行与预期/测试servlet不同的servlet。
  2. 让这个servlet创建两个指向预期/测试servlet的任务。每个任务的countdown属性都有30和60个值。
  3. 将两个任务都推送到TaskQueue。
  4. 或者,您可以在servlet启动后30秒和60秒预先计算预期的ETA,并将其放在eta property中,以获得更好的粒度。

    最后一点需要注意,etacountdown并不保证任务会在规定时间内执行。如果您的队列已经饱和,或者您的实例超载,则可能会出现一些延迟。