spring boot使用定时器框架Quartz案例

Posted 张小振的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot使用定时器框架Quartz案例相关的知识,希望对你有一定的参考价值。

 

 

一、你需要在项目中加入quartz-all-2.1.7.jar的jar包(我这里使用spring boot环境)

二、然后需要新建一个类去注册定时任务和销毁定时任务,这个类需要实现ServletContextListener的接口中的contextInitialized和contextDestroyed方法

三、接着就是去定义你自己的定时任务了,也就是再去新建一个类去实现Job的接口中的execute()方法,这个方法就是你在定时任务执行的时候要执行的内容

1, SimpleTrigger 指定从某一个时间开始,以一定的时间间隔(单位是毫秒)执行的任务。也就是他是以毫秒来计时。

2, CalendarIntervalTrigger
类似于SimpleTrigger,指定从某一个时间开始,以一定的时间间隔执行的任务。 但是不同的是SimpleTrigger指定的时间间隔为毫秒,没办法指定每隔一个月执行一次(每月的时间间隔不是固定值),而CalendarIntervalTrigger支持的间隔单位有秒,分钟,小时,天,月,年,星期。相较于SimpleTrigger有两个优势:1、更方便,比如每隔1小时执行,你不用自己去计算1小时等于多少毫秒。 2、支持不是固定长度的间隔,比如间隔为月和年。但劣势是精度只能到秒。
它适合的任务类似于:9:00 开始执行,并且以后每周 9:00 执行一次
3.DailyTimeIntervalTrigger 
指定每天的某个时间段内,以一定的时间间隔执行任务。并且它可以支持指定星期。 
它适合的任务类似于:指定每天9:00 至 18:00 ,每隔70秒执行一次,并且只要周一至周五执行。

 

注意一:这里使用监听器用@WebListener注解则可证明此类为Listener,无需另外配置

注意二:使用注解申明Listener时需要启动类上面添加@ServletComponentScan(basePackages = "包名+类名")

代码如下:

 

以上是关于spring boot使用定时器框架Quartz案例的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 整合Quartz定时器

Spring Boot2.x + Quartz 定时任务模块

SpringBoot系列:Spring Boot集成定时任务Quartz

SpringBoot系列:Spring Boot集成定时任务Quartz

Spring Boot集成quartz实现定时任务并支持切换任务数据源

Quartz与Spring Boot集成使用