2013-03-19 115 views
2

cron时间表的最小值和最大值是多少? cron可以运行多久? 24小时? 下面的代码与计划工作是1分钟。Google App Engine Cron时间表和长度

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

但我想让它30秒

所以我写了

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

,但它只是返回错误,当我更新的应用。

回答

6

Cron不支持小于一分钟的粒度。至于如何将长在GAE cron的将运行,the docs said

由cron调用的HTTP请求可以为最多10分钟运行,但受到同样的限制其它的HTTP请求。

这表明cron请求与任务队列请求一样。请求到前端实例拥有10分钟完成执行,同时要求到后端have a 24-hour deadline.

编辑: 如果你真的需要在你的cron30秒粒度,有点变通方法是可能通过利用countdown property TaskQueue中的任务。步骤如下:

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

或者,你可以在30秒,从servlet开始60秒预先计算预期的ETA,并把它放在eta property而不是一个更好的粒度。

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

+0

很好的答案,并且您的cron请求与TaskQueue请求具有相同的截止日期是正确的。 – 2013-03-19 22:42:35