Quartz表达式定义
Quartz就是基于java实现的任务调度框架,用于执行你想要执行的任何任务。
而Quartz表达式是一种用于定义任务触发时间的语法,它可以在Quartz框架中使用,Quartz表达式基于UNIX cron表达式。
Quartz表达式字段
在Quartz表达式中,各字段的含义如下:
- 秒(Seconds):0-59之间的整数;
- 分钟(Minutes):0-59之间的整数;
- 小时(Hours):0-23之间的整数;
- 日(Day of month):1-31之间的整数;
- 月(Month):1-12之间的整数或者使用JAN-DEC的英文缩写;
- 周几(Day of week):1-7之间的整数或者使用SUN-SAT的英文缩写,1表示星期天;
- 年(Year):可选字段,可以指定具体的年份,也可以使用*表示任意年份;
Quartz表达式符号
特殊字符和符号如下:
- *:匹配任意值;
- ?:表示不确定的值,通常用于日或周几字段;
- -:表示范围,如1-5表示1到5;
- ,:用于列举多个值,如MON,WED,FRI表示星期一、星期三和星期五;
- /:表示增量,如0/5表示从0开始,每隔5个单位;
- L:表示最后的意思,如6L表示一个月的最后一个星期五;
- #:用于确定某个月的第几个星期几,如2#1表示某月的第一个星期一;
Quartz表达式例子
以下是一些使用Quartz表达式的例子:
1.每天的特定时间触发:
每天中午12点触发:
0 0 12 * * ?
2.每隔一段时间触发:
每隔5秒触发一次:
0/5 * * * * ?
每隔30分钟触发一次:
0 0/30 * * * ?
3.每周的特定日期和时间触发:
每周一的上午10点触发:
0 0 10 ? * MON
每周五的下午3点触发:
0 0 15 ? * FRI
4.每月的特定日期和时间触发:
每月的1号下午2点触发:
0 0 14 1 * ?
每月最后一天的上午9点触发:
0 0 9 L * ?
5.每年的特定日期和时间触发:
每年的1月1日上午8点触发:
0 0 8 1 1 ?
每年的12月25日下午5点触发:
0 0 17 25 12 ?
6.使用通配符和范围:
每天的工作日(周一至周五)的上午9点到下午5点,每隔30分钟触发一次:
0 0/30 9-17 ? * MON-FRI
这些例子仅供参考,您可以根据自己的需求使用不同的字段值和组合方式来创建更复杂的Quartz表达式。
mikechen
mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获知最新一线技术干货!
