AWS EventBridge cron 定时任务
AWS EventBridge Scheduler 使用 cron(),六个字段从分钟到年,按你设置的时区运行(默认 UTC)。 选择一个调度,查看精确表达式、可直接粘贴的配置和接下来的运行时间。
调度
- 每 5 分钟
cron(0/5 * * * ? *) - 每小时
cron(0 * * * ? *) - 每分钟
cron(* * * * ? *) - 每 10 分钟
cron(0/10 * * * ? *) - 每 15 分钟
cron(0/15 * * * ? *) - 每 30 分钟
cron(0/30 * * * ? *) - 每天零点
cron(0 0 * * ? *) - 每天早上 9 点
cron(0 9 * * ? *) - 工作日早上 9 点
cron(0 9 ? * 2-6 *) - 每周一
cron(0 0 ? * 2 *) - 每月 1 号
cron(0 0 1 * ? *) - 每 6 小时
cron(0 0/6 * * ? *) - 每周日零点
cron(0 0 ? * 1 *) - 每 2 小时
cron(0 0/2 * * ? *) - 每 12 小时
cron(0 0/12 * * ? *) - 每天中午 12 点
cron(0 12 * * ? *) - 每周五
cron(0 0 ? * 6 *) - 每月最后一天
cron(0 0 L * ? *) - 每季度
cron(0 0 1 1/3 ? *) - 每 2 分钟
cron(0/2 * * * ? *) - 每 3 小时
cron(0 0/3 * * ? *) - 每天早上 6 点
cron(0 6 * * ? *) - 每天晚上 6 点
cron(0 18 * * ? *) - 每天两次
cron(0 0/12 * * ? *) - 工作日晚上 6 点
cron(0 18 ? * 2-6 *) - 周末上午 10 点
cron(0 10 ? * 1,7 *) - 每月 15 号
cron(0 0 15 * ? *) - 每月第一个周一
cron(0 9 ? * 2#1 *) - 每月最后一个周五
cron(0 17 ? * 6L *) - 每年一次
cron(0 0 1 1 ? *) - 每 30 秒无法转换
- 每 3 分钟
cron(0/3 * * * ? *) - 每 20 分钟
cron(0/20 * * * ? *) - 每 4 小时
cron(0 0/4 * * ? *) - 每 8 小时
cron(0 0/8 * * ? *) - 每天凌晨 1 点
cron(0 1 * * ? *) - 每天凌晨 2 点
cron(0 2 * * ? *) - 每天凌晨 3 点
cron(0 3 * * ? *) - 每天早上 8 点
cron(0 8 * * ? *) - 每个工作日
cron(0 0 ? * 2-6 *) - 每个周末
cron(0 0 ? * 1,7 *) - 每周二
cron(0 0 ? * 3 *) - 每周三
cron(0 0 ? * 4 *) - 每周四
cron(0 0 ? * 5 *) - 每周六
cron(0 0 ? * 7 *) - 每 6 个月
cron(0 0 1 1/6 ? *) - 每 10 秒无法转换
- 每 5 秒无法转换
AWS EventBridge 的坑
cron() 里是六个字段分、时、日、月、星期、年。没有秒字段。
一个日期字段必须是 ?设置了“日”,“星期”就写 ?,反之亦然。两个都设置会报错。
周日是 1星期是 1-7,从 SUN 开始,所以 2-6 是周一到周五。
星期字段不能用步长星期字段支持列表、范围、L 和一个 #,不支持 /。请直接列出日期。
与 AWS EventBridge 互转
AWS EventBridge cron 转 crontabcrontab cron 转 AWS EventBridgeAWS EventBridge cron 转 GitHub ActionsGitHub Actions cron 转 AWS EventBridgeAWS EventBridge cron 转 KubernetesKubernetes cron 转 AWS EventBridgeAWS EventBridge cron 转 SpringSpring cron 转 AWS EventBridgeAWS EventBridge cron 转 QuartzQuartz cron 转 AWS EventBridge
常见问题
AWS EventBridge 的定时任务按哪个时区运行?
EventBridge Scheduler 用 --schedule-expression-timezone 设置 IANA 时区,默认 UTC。旧的 EventBridge 规则只能用 UTC。
rate() 和 cron() 有什么区别?
rate(5 minutes) 从调度开始时起按固定间隔运行;cron() 按钟点运行。在意具体分钟就用 cron()。
用 EventBridge Scheduler 还是 EventBridge 规则?
AWS 推荐新调度使用 EventBridge Scheduler:支持时区和一次性调度。规则只能用 UTC。