You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求AWS Glue中每90分钟触发任务的正确Cron表达式

解决AWS Glue每90分钟触发的Cron表达式问题

我之前也碰到过类似的需求,用Cron处理非整小时的间隔确实容易踩坑,尤其是AWS生态下的Cron规则和标准Quartz还有些细微差别,得特别注意。

首先明确:AWS Glue的定时触发依赖CloudWatch Events的Cron语法,格式为 分钟 小时 日 月 星期 年,且不能同时指定具体的「日」和「星期」,必须有一个设为?。

正确的每90分钟触发表达式

直接上可用的方案,有两种实现方式:

方式1:单表达式实现

0,30 0/3,1/3 * * ? *

我拆解下每个字段的逻辑:

  • 0,30:仅在分钟为0或30的时候触发
  • 0/3,1/3:小时分为两组——从0点开始每3小时(0、3、6、9...),以及从1点开始每3小时(1、4、7、10...)
  • *:每天、每月都生效
  • ?:不指定星期(因为已经用*指定了所有日期)
  • *:每年都生效

这个表达式的触发时间序列(UTC时间)是:00:00 → 01:30 → 03:00 → 04:30 → 06:00...,刚好每90分钟一次,完全符合你的需求。

方式2:两个独立触发规则(更直观)

如果觉得单表达式有点绕,也可以创建两个Glue触发规则配合使用:

  1. 整点每3小时触发:0 0/3 * * ? *(触发时间:00:00、03:00、06:00...)
  2. 整点后30分每3小时触发:30 1/3 * * ? *(触发时间:01:30、04:30、07:30...)

两个规则搭配起来,同样能实现每90分钟触发一次的效果。

为什么你之前的尝试可能失败?

  • Cron表达式不支持小数(比如0/1.5这种写法完全无效)
  • 如果写了0,30 */1 * * ? *,会变成每小时触发两次(间隔30分钟),不符合需求
  • 错误的小时字段组合,比如只写了*/1,会导致每小时触发一次

额外提醒

AWS Glue的定时触发默认使用UTC时区,如果你的业务时间是本地时区,记得把触发时间转换为UTC再设置哦。

内容的提问来源于stack exchange,提问作者Senthil Kumar V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:17:00