2013-03-19 112 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