Cron表达式使用说明

一个Cron表达式通常由6或7个时间字段组成(秒 分 时 日 月 周),通过这些字段的灵活组合来精确指定执行时间。

特殊字符

基础示例

需求 Cron表达式 (6字段格式) 说明
每天上午9点整 0 0 9 * * ? 每天09:00:00执行
每天上午9点和下午5点 0 0 9,17 * * ? , 逗号用于分隔多个时间点
周一到周五上午9:30 0 30 9 ? * MON-FRI - 短横线用于指定一个连续范围
每月15号中午12点 0 0 12 15 * ? 在日字段指定具体日期,相应的周字段使用?占位
每月最后一天晚上11点 0 0 23 L * ? L 是 "Last" 的缩写,在日字段中表示月份的最后一天
每年6月所有周三的13:15和13:45 0 15,45 13 ? 6 TUE 综合运用枚举、日期、月份和星期几等字段

指定范围

如果希望任务在某个时间段内高频执行,可以指定时间范围。例如,0 0/30 9-17 ? * MON-FRI 表示工作日"朝九晚五"的工作时间内,每隔30分钟执行一次。

执行一次

标准的Cron是为周期性任务设计的,但可以实现"仅执行一次"的效果。为此,可以设置一个在未来特定时间执行的Cron表达式,并在任务完成后将其禁用。例如,0 15 10 25 12 ? 2025 表示在2025年12月25日的上午10:15:00 仅执行一次。

注意事项

1、日期与星期的冲突(? 字符的使用):日和周字段共同决定了一个日期,为了避免逻辑冲突,不能同时精确指定这两个字段。必须在其中一个字段中设置具体值,另一个字段则必须使用?来规避矛盾。

2、各系统实现细节差异:不同系统对Cron表达式的实现可能略有差异。例如,星期字段的起始值,在Quartz库中1代表周日,7代表周六,但在某些系统中,1可能代表周一。因此,在实际应用时,务必以你所使用的工具或平台的官方文档为准。

相关推荐
金銀銅鐵7 小时前
为什么枚举类中可以定义抽象方法
java·后端·ai编程
文丑颜不良啊8 小时前
LeetCode1941~1960题目解析
java·leetcode
txxzjmzlh9 小时前
SpringBoot 统⼀功能处理
java·spring boot·后端
nice_lcj52011 小时前
Java Lambda 表达式入门:怎么写、怎么用、常用方法有哪些
java·开发语言·后端·面试
码农小河6611 小时前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
SL_staff12 小时前
从配置失效到逻辑复用:JVS-Logic 如何构建可治理的业务编排中枢
java·spring·产品
特立独行的猫A12 小时前
一份 Markdown 发十个平台:cspub 一稿多投
java·后端·python
文丑颜不良啊13 小时前
LeetCode1961~1980题目解析
java·leetcode
文丑颜不良啊14 小时前
LeetCode2001~2020题目解析
java·leetcode
用户37215742613514 小时前
Java 批量提取 Word 文档中的图片并保存到本地
java