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

如何配置Quartz Scheduler实现7:30启动的每4小时运行定时任务

Quartz Scheduler 定时调度规则配置方案

以下为两个需求对应的配置方案,均基于Quartz标准Cron表达式实现:


1. 每日7:30起每4小时运行一次

配置规则

Cron表达式:0 30 7/4 * * ?

规则说明

Quartz Cron表达式从左到右依次为秒 分 时 日 月 周 年(可选),该表达式含义如下:

  • 秒位为0:固定在每分钟的0秒触发
  • 分位为30:固定在每小时的30分触发
  • 时位为7/4:从每日7点开始,每间隔4小时触发一次
  • 日、月位为*:表示所有日期、月份均生效
  • 周位为?:表示不指定周规则,避免和日位规则冲突

Java 代码配置示例

Trigger dailyTrigger = TriggerBuilder.newTrigger()
    .withIdentity("dailyTrigger", "businessGroup")
    .withSchedule(CronScheduleBuilder.cronSchedule("0 30 7/4 * * ?"))
    .build();

触发时间示例

每日将在7:30、11:30、15:30、19:30、23:30各触发一次,次日自动循环。


2. 仅工作日7:30起每4小时运行一次

配置规则

Cron表达式:0 30 7/4 ? * MON-FRI

规则说明

与每日规则的差异仅为调整了日位和周位规则:

  • 日位为?:不指定日期规则,避免和周规则冲突
  • 周位为MON-FRI:仅周一到周五(工作日)生效,也可写为数字格式2-6(Quartz中周数字规则为1=周日,2=周一,7=周六)

Java 代码配置示例

Trigger workdayTrigger = TriggerBuilder.newTrigger()
    .withIdentity("workdayTrigger", "businessGroup")
    .withSchedule(CronScheduleBuilder.cronSchedule("0 30 7/4 ? * MON-FRI"))
    // 如需指定时区避免偏差可添加以下配置,示例为东八区
    // .inTimeZone(TimeZone.getTimeZone("Asia/Shanghai"))
    .build();

注意事项

  • 上述Cron规则仅支持自然周的周一到周五过滤,若需要排除春节、国庆等法定节假日,需要额外实现Quartz的Calendar接口自定义日期过滤逻辑,将节假日加入排除列表后绑定到Trigger即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:39:02