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可能代表周一。因此,在实际应用时,务必以你所使用的工具或平台的官方文档为准。

相关推荐
Tian_Hang3 小时前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
小蓝波4 小时前
docker 的命令
java·docker·容器
AI人工智能+电脑小能手4 小时前
【大白话说Java面试题 第155题】【06_Spring篇】第15题:Spring 如何解决循环依赖问题?
java·spring·循环依赖·三级缓存·aop代理
唐青枫4 小时前
Java Maven 实战指南:从 POM、依赖管理到多模块构建
java
硕风和炜4 小时前
【LeetCode: 1301. 最大得分的路径数目 + DP】
java·算法·leetcode·动态规划·dp·记忆化搜索
SamDeepThinking5 小时前
面向对象真正管理的,不是对象,而是依赖
java·后端·程序员
剑挑星河月5 小时前
94.二叉树的中序遍历
java·算法·leetcode
2301_801184756 小时前
docker 工作
java·docker·容器
老前端的功夫6 小时前
【Java从入门到入土】47:构建工具:Maven与Gradle的战争
java·python·maven
aaPIXa6226 小时前
C++模板元编程:在编译期完成计算,实现零运行时开销
java·开发语言·c++