李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
04.Quartz触发器之CronExpression表达式
Leefs
2021-08-30 AM
1314℃
0条
# 04.Quartz触发器之CronExpression表达式 ### 前言 当需要设置任务执行时间过于复杂时,一般都使用CronExpression表达式来满足我们的需求,本篇将详细介绍Quartz支持的CronExpression表达式的用法。 **示例** CronExpression表达式表示 > **每秒执行一次** ``` * * * * * ? * ``` **说明** 时间顺序依次为:**[秒] [分] [小时] [日] [月] [周] [年]** `*`代表所有值,也就是每秒都会触发。 ### 一、概述 Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。 ### 二、CronExpression表达式说明 **Quartz Cron表达式支持到七个域** **表达式** > [秒] [分] [小时] [日] [月] [周] [年] | 序号 | 说明 | 是否必填 | 允许填写的值 | 允许的通配符 | | ---- | ---- | -------- | ------------------ | ------------- | | 1 | 秒 | 是 | 0-59 | , - * / | | 2 | 分 | 是 | 0-59 | , - * / | | 3 | 小时 | 是 | 0-23 | , - * / | | 4 | 日 | 是 | 1-31 | , - * ? / L W | | 5 | 月 | 是 | 1-12 or JAN-DEC | , - * / | | 6 | 周 | 是 | 1-7 or SUN-SAT | , - * ? / L # | | 7 | 年 | 否 | empty 或 1970-2099 | , - * / | **特殊字符说明** | 字符 | 说明 | | ---- | ------------------------------------------------------------ | | * | 表示所有值. 例如:在分的字段上设置 "*",表示每一分钟都会触发。 | | ? | 表示不指定值。使用的场景为不需要关心当前设置这个字段的值。例如:要在每月的10号触发一个操作,但不关心是周几,所以需要周位置的那个字段设置为"?" 具体设置为 `0 0 0 10 * ?` | | - | 表示区间。例如 在小时上设置 "10-12",表示 10,11,12点都会触发。 | | , | 表示指定多个值,例如在周字段上设置 "MON,WED,FRI" 表示周一,周三和周五触发 | | / | 用于递增触发。如在秒上面设置"5/15" 表示从5秒开始,每增15秒触发(5,20,35,50)。 在月字段上设置'1/3'所示每月1号开始,每隔三天触发一次。 | | L | 表示最后的意思。在日字段设置上,表示当月的最后一天(依据当前月份,如果是二月还会依据是否是润年[leap]), 在周字段上表示星期六,相当于"7"或"SAT"。如果在"L"前加上数字,则表示该数据的最后一个。例如在周字段上设置"6L"这样的格式,则表示“本月最后一个星期五" | | W | 表示离指定日期的最近那个工作日(周一至周五). 例如在日字段上设置"15W",表示离每月15号最近的那个工作日触发。如果15号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16号)触发.如果15号正好在工作日(周一至周五),则就在该天触发。如果指定格式为 "1W",它则表示每月1号往后最近的工作日触发。如果1号正是周六,则将在3号下周一触发。(注,"W"前只能设置具体的数字,不允许区间"-"). | | # | 序号(表示每月的第几个周几),例如在周字段上设置"6#3"表示在每月的第三个周六.注意如果指定"#5",正好第五周没有周六,则不会触发该配置(用在母亲节和父亲节再合适不过了) ; | | L和W | 'L'和 'W'可以一组合使用。如果在日字段上设置"LW",则表示在本月的最后一个工作日触发; | *注意:字符不区分大小写,`MON`,`mon`相同*。 ### 三、示例 | 表达式 | 说明 | | ------------------------ | ------------------------------------------------------------ | | 0 0 12 * * ? | 每天12点触发 | | 0 15 10 ? * * | 每天10点15分触发 | | 0 15 10 * * ? | 每天10点15分触发 | | 0 15 10 * * ? * | 每天10点15分触发 | | 0 15 10 * * ? 2021 | 2021年每天10点15分触发 | | 0 * 14 * * ? | 每天下午的 2点到2点59分每分触发 | | 0 0/5 14 * * ? | 每天下午的 2点到2点59分(整点开始,每隔5分触发) | | 0 0/5 14,18 * * ? | 每天下午的 2点到2点59分、18点到18点59分(整点开始,每隔5分触发) | | 0 0-5 14 * * ? | 每天下午的 2点到2点05分每分触发 | | 0 10,44 14 ? 3 WED | 3月份每周三下午的 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 15 10 ? * 6L | 每月最后一周的星期五的10点15分触发 | | 0 15 10 ? * 6L 2020-2021 | 从2020年到2021年每月最后一周的星期五的10点15分触发 | | 0 15 10 ? * 6#3 | 每月的第三周的星期五开始触发 | | 0 0 12 1/5 * ? | 每月的第一个中午开始每隔5天触发一次 | | 0 11 11 11 11 ? | 每年的11月11号 11点11分触发 | *附:* *参考文章链接:https://blog.csdn.net/caiwenfeng_for_23/article/details/17004213*
标签:
Quartz
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1405.html
上一篇
【转载】03.Quartz触发器
下一篇
05.Quartz监听器
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
正则表达式
gorm
Kibana
Hive
LeetCode刷题
Map
Tomcat
HDFS
Stream流
JVM
查找
Sentinel
线程池
nginx
Java工具类
Spark Core
Http
SpringBoot
Yarn
数学
Docker
Filter
CentOS
Spark Streaming
排序
Zookeeper
Golang
Flink
Thymeleaf
Spring
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞