计划表达式参考 - Amazon CloudWatch 日志

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

计划表达式参考

使用这些参考表为计划查询构造计划表达式。所有时间均采用 UTC。

Cron 表达式语法

格式:cron(minute hour day-of-month month day-of-week year)

使用场景 Cron 表达式 描述 何时使用
每日日程安排 cron(0 9 * * ? *) 世界标准时间每天上午 9:00 每日报告
cron(0 */6 * * ? *) 每 6 个小时(世界标准时间 00:00、06:00、12:00、18:00) 频繁监控
cron(30 2 * * ? *) 世界标准时间每天凌晨 2:30 非高峰期分析
营业时间 cron(0 9-17 ? * MON-FRI *) 世界标准时间周一至周五上午 9 点至下午 5 点,每小时一班 业务监控
cron(0 18 ? * MON-FRI *) 世界标准时间工作日下午 6:00 工作日结束
cron(0 8,12,17 ? * MON-FRI *) 世界标准时间工作日上午 8 点、中午和下午 5 点 关键商业时间
每周日程安排 cron(0 12 ? * SUN *) 世界标准时间每周日中午 每周摘要
cron(0 9 ? * MON *) 世界标准时间每周一上午 9:00 一周开局报告
cron(0 23 ? * FRI *) 世界标准时间每周五晚上 11:00 周末清理
每月日程安排 cron(0 0 1 * ? *) 每个月的第一天午夜(UTC) 月度报告
cron(0 9 L * ? *) 每个月的最后一天世界标准时间上午 9:00 月末处理
cron(0 10 1 1,4,7,10 ? *) 每个季度的第一天世界标准时间上午 10:00 季度分析
高频率 cron(*/15 * * * ? *) 每 15 分钟一次 实时监控
cron(0,30 * * * ? *) 每 30 分钟(上午和下午 30 点) 经常检查
cron(0 */2 * * ? *) 每 2 小时 定期间隔
特殊案例 cron(30 8 1 1 ? *) 世界标准时间 1 月 1 日上午 8:30 年度报告
cron(0 6 * * SAT,SUN *) 周末世界标准时间上午 6:00 周末处理
cron(0 0 ? * MON#1 *) 每个月的第一个星期一世界标准时间午夜 月度计划

Cron 表达式字段引用

字段 通配符 示例
分钟(第 1 分钟) 0-59 * , - / 0(每小时)、*/15(每 15 分钟一次)、0,30(每小时两次)
小时(第 2 小时) 0-23 * , - / 9(上午 9 点)、*/2(每 2 小时)、9-17(营业时间)
Day-of-month (第 3 名) 1-31、L、W * , - / ? 1(第 1 天)、L(最后一天)、?(使用时 day-of-week)
月(第 4 个月) 1-12 或 JAN-DEC * , - / 1(一月),JAN1,4,7,10(每季度)
Day-of-week (第 5 名) 1-7 或 SUN-SAT * , - / ? # L MON-FRI(工作日),SUNMON#1(第一个星期一)
年份(第 6 年) 1970-2199 * , - / *(每年)、2024(特定年份)、2024-2026(范围)

通配符和特殊表达式

*(星号)

匹配该字段中的所有值。示例:*在 “小时” 字段中表示每小时。

?(问号)

没有具体值。在 day-of-month或指定了另一个 day-of-week时使用。示例:?在中指定 day-of-month时使用 MON-FRI in day-of-week。

-(短划线)

值的范围。示例:MON-FRI(周一至周五),9-17(上午 9 点到下午 5 点)。

,(逗号)

多个特定值。示例:MON,WED,FRI(星期一、星期三、星期五)、8,12,17(上午 8 点、中午、下午 5 点)。

/(斜线)

步长值或增量。示例:0/15以分钟为单位表示从第 0 分钟(0、15、30、45)开始每 15 分钟。 */2以小时为单位表示每 2 小时。

L(最后)

一个月的最后一天或工作日的最后一天。示例:Lin day-of-month 表示一个月的最后一天。 FRIL表示每月的最后一个星期五。

W(工作日)

最近的工作日。示例:15W表示最接近当月 15 日的工作日。

#(第 n 次出现)

一个月中第 N 个工作日出现。示例:MON#1表示每月的第一个星期一,FRI#2表示该月的第二个星期五。

常见模式和最佳实践

  • 对于业务应用程序:使用MON-FRI和工作时间(例如9-17)以避免在周末或非工作时间运行查询。

  • 对于高频监控:使用诸如*/15(每 15 分钟)之类的增量,但要注意查询并发限制。

  • 提高资源效率:使用清晨时间(如 UTC)在非高峰时段安排资源密集型查询。2-6

  • 对于月度报告:L用于每月的最后一天或特定日期(例如1第一天),以确保时间一致。