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

Java环境下Quartz CronTrigger每8小时执行配置失效问题

Quartz Cron表达式配置错误排查与修复

你的问题出在Cron表达式的分钟位取值超出范围,导致Quartz解析异常,最终任务每小时执行一次。

问题分析

你配置的表达式0 0/480 * * * ?中,第二个位置是「分钟位」,该位置的合法取值范围是0-59。0/480表示从0分开始,每隔480分钟执行一次,但480远大于分钟位的最大值59,Quartz会将这个步长视为无效,实际解析为「每小时的0分执行一次」,也就是每小时运行一次任务。

正确配置

要实现每8小时执行一次,应该将步长设置在「小时位」,正确的Cron表达式为:

trigger.setCronExpression("0 0 */8 * * ?");

表达式解释

Cron表达式各位置含义(从左到右):

  • 0:秒位,固定在0秒执行
  • 0:分钟位,固定在0分执行
  • */8:小时位,从0点开始,每隔8小时执行一次
  • *:日位,每天都执行
  • *:月位,每月都执行
  • ?:星期位,不指定星期(避免与日位冲突)

修改后的完整代码

CronTrigger trigger = new CronTrigger();
trigger.setName("data-checks-job");
trigger.setStartTime(CommonUtil.getBeforeTimeInHour("1", "yyyy/MM/dd-HH:mm:ss"));
trigger.setCronExpression("0 0 */8 * * ?"); 

内容的提问来源于stack exchange,提问作者Nitish K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:53:16