【问题标题】:AWS Cloudwatch Rule Schedule Cron Expression to Skip 2 Hours in a DayAWS Cloudwatch 规则安排 Cron 表达式在一天内跳过 2 小时
【发布时间】:2020-04-17 04:22:13
【问题描述】:

我想触发一个 AWS Lambda 函数,使用 Cloudwatch 规则,要求如下。

  • 条件一:每日触发
  • 条件2:每5分钟一次
  • 条件 3:不应该在晚上 11 点到 每天凌晨 1 点(维护时段)。

我阅读了documentation on crons,但无法提出一个 Cron 表达式来满足条件 3。我想出了以下表达式。

0/5 ## * * ? *

我怎样才能满足上述条件3?我在 cron 表达式上将其保留为 ##。我很清楚时区。

【问题讨论】:

标签: amazon-web-services cron amazon-cloudwatch


【解决方案1】:

您可以使用 cron 在线工具,例如

https://crontab.guru/

http://www.cronmaker.com/

这是我根据您的要求创建的表达式

*/5 1-23 * * *

【讨论】:

  • 这是一个非常好的站点,可以帮助 cron 作业创建者。我也这样做了。
  • 这些 cron 表达式不适用于 AWS Cloudwatch。这就是为什么我在问题中分享了一个参考。请参阅docs.aws.amazon.com/AmazonCloudWatch/latest/events/… 上的文档
【解决方案2】:

我正在回答我自己的问题。正则 cron 表达式不适用于 AWS Cloudwatch 规则。 AWS Cloudwatch 规则具有 六 (6) 个必填字段 的 cron 表达式。 (Link to Documentation)。这个问题的答案如下。我将介绍不同的场景,因为在某些情况下,时区很重要,我们可能不得不跳过不同的时间而不是午夜。

以下两种情况都有效,我在 AWS Cloudwatch 规则中进行了测试。

场景 1:每天触发 - 每 5 分钟 - 跳过晚上 11 点到凌晨 1 点。

0/5 1-22 * * ? *

说明:第一个字段提到,它应该只在第 0 分钟和第 5 分钟触发。第二个字段提到它应该从第 1 小时到第 22 小时触发。因此,在 22:55 之后,下一个触发器将是 1:00。它将从 23:00 跳到 00:55。

场景 2:每天触发 - 每 5 分钟 - 跳过下午 5 点到晚上 7 点

0/5 0-16,19-23 * * ? *

说明:第一个字段提到,它应该只在第 0 分钟和第 5 分钟触发。第二个字段提到它应该从第 0 个小时到第 16 个小时以及从第 19 个小时到第 23 个小时触发。因此,在 16:55 之后,下一个触发将是 19:00。它将从 17:00 跳到 18:55。

【讨论】:

    【解决方案3】:

    这个命令可以帮助你:

    */5 1-23* * * * /usr/bin/php /home/username/public_html/cron.ph >/dev/null 2>&1
    

    参考:crontab run every 15 minutes between certain hours

    【讨论】:

      【解决方案4】:

      答案已经给出,但我可以添加的东西很少,https://crontab.guru/ 会造成混淆,因为 AWS cron 表达式由 6 数字组成,而 crontab 由 5 组成,这只会造成 @ 提到的混淆吉特

      因此,首先您可以忽略年份部分并在 crontab 中检查您的 cron express,但 crontab 再次不理解 ? 标记时涉及星期几。

      所以我的建议是使用 AWS 控制台进行表达式测试,它将列出下一个 10 触发器。

      所以希望它可以帮助其他人了解下一个触发器。

      更多详情请查看AWS CronExpressions

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-19
        • 2021-07-24
        • 2017-10-18
        • 2021-01-16
        • 1970-01-01
        • 2020-11-02
        • 2021-06-12
        • 1970-01-01
        相关资源
        最近更新 更多