### Quartz的Cron表达式详解 #### 一、Cron表达式概述 Cron表达式是一种用于配置定时任务执行频率的格式化字符串。在Quartz调度器中,CronTrigger类型的触发器支持Cron表达式来定义触发规则。Cron表达式由六个或七个有空格分隔的时间元素组成,每个元素对应不同的时间单位。 #### 二、Cron表达式结构 Cron表达式的结构如下: 1. **秒 (0-59)** 2. **分钟 (0-59)** 3. **小时 (0-23)** 4. **日期 (1-31)** 5. **月份 (1-12 或者 JAN-DEC)** 6. **星期 (1-7 或者 SUN-SAT)** 7. **年 (1970-2099)**(可选) #### 三、Cron表达式元素详解 1. **秒**: 定义任务在某一分内的具体秒数。 - 示例:`00` 表示每一分钟的第0秒。 2. **分钟**: 定义任务在一个小时内执行的具体分钟。 - 示例:`10` 表示每一小时的第10分钟。 3. **小时**: 定义任务在一天内执行的具体小时。 - 示例:`10` 表示每天上午10点。 4. **日期**: 定义任务在一个月内执行的具体日期。 - 示例:`15` 表示每月的15号。 5. **月份**: 定义任务在哪个月执行。 - 示例:`03` 表示每年的三月。 6. **星期**: 定义任务在一周内哪几天执行。 - 示例:`1` 表示每周一。 7. **年**: 定义任务在哪一年执行。(可选) - 示例:`2023` 表示只在2023年内执行。 #### 四、Cron表达式符号解释 - **星号(*)**: 代表所有可能的值。 - 示例:`*` 在月份中表示每个月。 - **逗号(,)**: 用于表示多个离散的值。 - 示例:`1,15,30` 表示每个月的第一天、第十五天和第三十天。 - **破折号(-)**: 用于表示一个范围。 - 示例:`10-15` 表示10到15之间的每一天。 - **斜线(/)**: 用于表示增量,即从某个数字开始按一定增量重复。 - 示例:`0/15` 表示从0分钟开始,每15分钟一次。 - **问号(?)**: 用于不指定具体的日期或星期。 - 示例:`?` 在日期和星期中交替使用,避免冲突。 - **字母L**: 表示“last”的缩写。 - 示例:`L` 在日期中表示一个月的最后一天,在星期中表示一周的最后一天。 - **字母W**: 用于指定最接近指定日期的工作日。 - 示例:`1W` 表示最近的工作日(周一至周五)。 - **字母C**: 表示“Calendar”的缩写,用于指定最接近指定日期的日历日。 - 示例:`15C` 表示最接近15号的日历日。 #### 五、示例解析 - **每天上午10点,下午2点,4点**: - `00 10,14,16 * * ?` - 解析:秒为00,分钟为10、14、16,小时为10、14、16,月份和星期未指定。 - **朝九晚五工作时间内每半小时**: - `00/30 9-17 * * ?` - 解析:秒为00,分钟为每半小时(00、30),小时为9到17,月份和星期未指定。 - **每年三月的星期三中午12点**: - `00 12 * 3 WED` - 解析:秒为00,分钟为12,小时为12,日期为任意日,月份为3,星期为周三。 - **2005年的每天上午10:15**: - `00 15 10 * * ? 2005` - 解析:秒为00,分钟为15,小时为10,日期和星期未指定,年份为2005。 - **每月15日上午10:15**: - `00 15 10 15 * ?` - 解析:秒为00,分钟为15,小时为10,日期为15,月份为任意月,星期未指定。 通过以上内容的详细介绍,我们可以看到Quartz的Cron表达式非常灵活且功能强大,能够满足大多数定时任务的需求。开发者可以根据实际需求灵活运用这些符号和格式,实现精确的任务调度。


















一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
7.年份(1970-2099)
其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。
由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?.
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时
0 0 12 ? * WED 表示每个星期三中午12点
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整

- 粉丝: 0
- 资源: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 计算机课件第7章 程序设计.pdf
- 汽车电子开发中Excel与DBC文件互转的MATLAB M脚本实现方法
- 计算机课件第8章 组装计算机.pdf
- 计算机课件第7章 数组.pdf
- 计算机课件第7章 中断.pdf
- 计算机课件第8章软件维护.pdf
- 计算机课件第8章 流水技术.pdf
- 计算机课件第8章 常用外部设备.pdf
- 计算机课件第9章 计算机病毒的防治.pdf
- 计算机课件第9章表单.pdf
- 计算机课件第9~10章 多媒体及技术计算机毒辣.pdf
- 计算机课件第10章 文件.pdf
- scipy-0.10.0.tar.gz
- 计算机课件第10章键盘与接口.pdf
- 计算机课件第11章模数、数模转换及应用.pdf
- STM32变频器全套方案:涵盖源程序、控制板与软硬件设计文档的电机控制系统


