【问题标题】:Google cloud cron.yaml schedule formatting for custom repetitive interval自定义重复间隔的谷歌云 cron.yaml 计划格式
【发布时间】:2019-11-06 12:01:11
【问题描述】:

我正在努力为 gcp 正确格式化 cron 计划,而文档并没有真正帮助我。

Cron #1:从 11:00 到 21:00 每 50 分钟运行一次,仅在从 3 月到 10 月(含)的月份中运行

  schedule: every 50 minutes from 11:00 to 21:00 of mar,apr,may,jun,jul,aug,sep,oct

Cron #2:仅在从 3 月到 10 月的月份每天 22:00 运行

  schedule: every day 22:00 of mar,apr,may,jun,jul,aug,sep,oct

这些都不起作用,但它们是我的尝试之一。我在这里做错了什么?

【问题讨论】:

    标签: google-app-engine google-cloud-platform cron


    【解决方案1】:

    参考下面的Formatting the schedule 文档。

    您的第一个 cron 不支持语法:

    • END-TIME INTERVALSTART-TIME INTERVAL 格式支持在[INTERVAL_VALUE] 中指定分钟,但它们都不允许在[INTERVAL_SCOPE] 中指定月份。
    • [INTERVAL_SCOPE] 中支持月份规格的唯一格式是 CUSTOM INTERVAL,但仅支持 [INTERVAL_VALUE] 中的日期规格。

    但是您可以通过使用cron.yaml 中更精细的时间规范并检查 cron 作业本身内部的剩余条件来实现等效功能,如果不满足条件则不执行任何操作。因此,您的第一个 cron 将通过以下方式实现:

    • 这个cron.yaml 条目:

      schedule: every 50 minutes from 11:00 to 21:00
      
    • 在 cron 作业本身内对当前月份进行额外检查,如果月份是一月、二月、十一月或十二月,则什么都不做(只是返回)。

    您的第二个 cron 可以使用 CUSTOM INTERVAL,您只需将小时放在 [INTERVAL_SCOPE] 的末尾。来自文档:

    [INTERVAL_SCOPE]:指定与 指定 [INTERVAL_VALUE]。自定义间隔可以包括 of [MONTH] 子句,它指定一年中的一个月,或者 多个月份的逗号分隔列表。您还必须定义一个 您希望作业运行的具体时间,例如:of [MONTH] [HH:MM]

    所以你的输入是:

    schedule: every day of mar,apr,may,jun,jul,aug,sep,oct 22:00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多