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

如何编写Cron表达式实现每日9:30、10:00执行定时任务

Cron表达式实现每日9:30、10:00定时触发方案

原写法错误原因

你之前编写的0 30/30 9-10 * * ?不符合预期的核心原因是步长匹配逻辑:该表达式会匹配9点、10点两个小时内,从每小时第30分钟开始每30分钟的时间点,实际命中9:30、10:30两个时刻,间隔1小时,和需求不符。
额外需要注意:Cron表达式不同字段的多值枚举默认是笛卡尔积匹配规则,如果直接写0 0,30 9,10 * * ?,会命中9:00、9:30、10:00、10:30四个时刻,多触发两次,也不符合要求。

正确实现方式

通用稳妥方案(全Cron实现兼容)

拆分两个独立的Cron表达式进行配置,不会因为框架实现差异出现匹配偏差,是生产环境推荐的写法:

  • Quartz生态(带秒位,适用于Java Spring、XXL-JOB等大部分Java定时任务框架)
    • 9:30触发:0 30 9 * * ?
    • 10:00触发:0 0 10 * * ?
  • Linux Crontab(无秒位5位格式,适用于Linux系统自带定时任务)
    • 9:30触发:30 9 * * *
    • 10:00触发:0 10 * * *

单配置项写法(框架支持多表达式分隔时可用)

如果你使用的定时任务框架支持在单个配置项中用分号分隔多个Cron表达式,可以直接合并写为:
0 30 9 * * ?;0 0 10 * * ?

注意:该写法不是标准Cron语法,仅部分框架做了扩展支持,使用前请先确认你所用框架的能力,避免匹配失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:51:26