当前位置:首页 > java知识学习_java技术文章 > 正文

crontriggerbean配置表达式详解与项目案例

浏览113+

一、CronTrigger和crontriggerbean类图关系

spring quartz定时器的实现少不了一个非常重要的类,这类的名字叫CronTrigger类,而今天我们所讲到的crontriggerbean是crontrigger的在spring框架中的实现类,凡是在spring中使用触发器都是使用的crontriggerbean,以上两个关联类的继承结构图如下所示。

CronTrigger和crontriggerbean类图继承关系

二、配置表达式详解

1)案例讲解crontriggerbean表达式的应用

了解完以上的触发器之后,接下来我们需要了解配置触发器的表达式如何设定定时任务和任务触发执行时间,下面我们首先了解一下crontriggerbean表达式的语法结构。

crontriggerbean表达式由七部分组成,其中每一部分可以认为是一个子表达式,每个子表达是代表着相应的含义,并且各个子表达式之间用空格区分,下面是一个表达式语句的例子,我们通过该案例来分析一下各个表达式的书写方式和具体含义。

表达式语法案例

上图中的表达式案例有六部分组成,它的实际意思表示星期三这一天在12点整的这一时刻执行该任务,并且每个星期三都执行,需要注意的是以上表达式只有六个子表达式,没有年这个选项,所以说crontriggerbean表达式总共为七项,然后我们编写的时候最少可以写六项。

七项表达式的从左到右的含义依次是:秒 分 时 天 月 星期 年,最后的第七项表达式年可有可无,可写可不写,前面六项属于必写项。

2)各个子表达式的取值范围详解

接下来,我们通过一张图儿详解一下各个子表达式是如何取值的以及取值范围有哪些:

crontrigger表达式取值范围图解

上图中已经对各个字段的子表达式取值范围做了详细的介绍,我们再一一做一下说明。

秒的取值范围是0到59,因为一分钟只有60秒嘛,所以0-59涵盖了60秒的范围,该字段也是必须填写的必填项,分和秒的取值范围是完全一样的,也是必填项。

时的取值范围是0到23,属必填项,日的取值范围是1到31,因为根据日历显示,每个月最多有31天的时候,因此,该取值范围是1到31,也是必填项。

月的取值范围是1到12,星期的取值范围是1到7,年的范围是1970年到2099年,但是这个年不是必填项,可写也可以不写。

3)各个子表达式特殊字符含义详解

学习仔细的朋友们应该发现了,每个子表达式取值范围里面总是有一些特殊符号儿,这些特殊字符肯定在crontriggerbean表达式中有特殊的含义,下面我们也是以贴图的方式向大家解释一下子表达式中这些常用的特殊字符都是什么意思

子表达式的特殊字符解释

我们按照上图中列出的字符顺序,对这些字符做一下详细的说明。

“,”表示都要执行的意思,意思就是逗号儿左边和逗号儿右边的数据都会执行,比如说3,4,意思就是三号和四号这天都都会执行定时任务。

“-“表示循环执行,也是一个范围的意思,比如说0到59,它的意思就是循环执行每分钟都执行一次。

“*”星号儿就比较好理解了,它指代任意值,意思就是说任意值都可以。

“/”斜杠表示增量执行的意思,乍一说,大家好像不明白,还是以实际上代码的例子来解释,比如说0/2,它表示从零这一刻开始,每两分钟执行一次,再比如说3/5表示从第三分钟开始,每五分钟执行一次,是这样的意思。

“?”问号儿就是不确定的意思,它可以指代某一天,也可以指代不清楚,反正该问号只能出现在月和星期的子表达式中,也是指某天的意思。

“L”表示last的英文单词首字母,其意为最后,比如说:星期的最后一天啊,某个月的最后一天,是这个意思。

4)众多表达式案例

以上几个方面的讲解我们已经将该crontriggerbean表达式的应用讲述的非常清楚了,只不过大家在使用时还会稍微有一些陌生,下面我们列举一些具体的例子让大家加深一下该表达式的理解。

表达式案例

三、crontriggerbean在spring中配置的定时任务项目案例

定时任务类代码:

定时任务类代码

定时任务在spring中的配置代码:

定时任务在spring中的配置代码

上图是在spring框架中配置的定时任务,然后应用在项目中的一段代码,首先我们编写了一个ScheduleTask定时任务类,然后在JobUnlockTicket方法中,书写了一段业务逻辑,然后将这个定时任务类以bean标签的方式注册到spring容器中。

crontriggerbean中配置了执行定时任务的表达式,设置的表达式规则是每隔五分钟就执行一次任务类中的的定时器方法,并且对该这些任务类设置了不允许并发执行,必须等上一个任务处理完成之后,才开启下一个任务。

四、crontriggerbean jar源码

crontriggerbean jar类的源码截图:

crontriggerbean源码详图

 

责任声明:文章信息由IT教程屋小编精心整理总结编排而成,倾注了心血和汗水,转载时请遵循行业规范务必注明文章作者、来源及本页链接,谢谢合作!
本篇文章标题:crontriggerbean配置表达式详解与项目案例
本篇文章url地址:http://www.itjcw123.cn/3201.html