【问题标题】:Google App Engine Cron schedule and lengthGoogle App Engine Cron 时间表和长度
【发布时间】:2013-03-07 23:38:05
【问题描述】:

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

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

但我想做到 30 秒

所以我写了

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

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

【问题讨论】:

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


    【解决方案1】:

    Cron 不支持小于一分钟的粒度。至于 GAE 中的 cron 会运行多久,the docs said

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

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

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

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

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

    最后一个警告,etacountdown 不能保证任务会在规定的时间执行。如果您的队列已饱和,或者您的实例超载,则可能会出现一些延迟。

    【讨论】:

    • 好答案,你说得对,cron 请求与 TaskQueue 请求的截止日期相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 2017-11-30
    • 2019-01-03
    相关资源
    最近更新 更多