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

求每日00:30起每4小时执行的Quartz Cron调度表达式

Quartz指定间隔调度场景的Cron表达式写法

适配需求(每日00:30起每4小时执行,触发点为00:30、04:30、08:30、12:30、16:30、20:30)的正确Quartz Cron表达式为:
0 30 0/4 * * ?

表达式字段拆解

Quartz Cron表达式固定遵循秒 分 时 日 月 周 [年]的字段顺序(年为可选字段,日常调度一般不需要配置),上述表达式各字段含义:

  • 秒位:0,代表在整秒时刻触发
  • 分位:30,代表取对应小时的第30分钟
  • 时位:0/4,代表从当日0点开始,按4小时步长取有效小时值,自动覆盖0、4、8、12、16、20六个符合要求的时间点
  • 日位:*,代表不限制具体日期
  • 月位:*,代表不限制具体月份
  • 周位:?,Quartz中日、周字段为互斥规则字段,当日维度设置了通配规则时,周字段必须填?避免规则冲突报错

等价写法

如果偏好明确枚举触发小时的高可读写法,也可以使用完全等价的表达式,执行效果没有任何区别:
0 30 0,4,8,12,16,20 * * ?

触发时间校验

上述两个表达式每日的触发时间完全匹配需求:

  • 00:30(即12:30am)
  • 04:30(即4:30am)
  • 08:30(即8:30am)
  • 12:30(即12:30pm)
  • 16:30(即4:30pm)
  • 20:30(即8:30pm)

常见配置踩坑说明

  • 时位如果用*/4写法,当前场景下和0/4效果一致(因为小时字段最小值为0),但如果后续调整起始时间很容易出错,写0/4语义更明确,直接体现从0点开始计数的规则。
  • 周位不要误填为*,Quartz中日和周是互斥字段,两个字段同时设全量通配会触发规则校验报错,必须把其中一个设为?表示不指定该维度规则。
  • 不要直接套用Linux Crontab的表达式写法,Linux Crontab没有秒位,周字段的计数规则也和Quartz有差异,直接复用会导致触发时间完全错乱。

内容的提问来源于stack exchange,提问作者Sneha Nadar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:12:17