Quartz实现定时任务
1.引入jar包
maven项目可以直接引入Quartz包:
1 | <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz 定时任务管理工具quartz --> |
如果是SpringBoot项目,则已经集成好了starter包,引入后启动项目,则会将相应Quartz类自动注入到Spring容器中,实现自动配置:
1 | <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-quartz --> |
此处为学习Quartz使用原理,引入Quartz包。
2.创建任务类
实现Job接口并重写其execute方法,该方法即为需要定时执行的任务方法。
定时任务方法往往要使用到Spring容器中的bean,而Quartz的Job接口实现类中是无法通过@Autowired注入Spring Bean的,只有注入到Spring容器中去了的bean才能进行依赖注入。有一些方法可以解决这个问题,此处我们采用文末附件中的SpringUtil工具类来帮助我们获取Spring容器中的bean。
定时任务所需的一些参数也可以通过JobExecutionContext来传入。
1 | public class ConsolePrintJob implements Job { |
3.创建定时任务调度器管理类
定时任务调度器可以写得很复杂,实现很多功能,此处只实现最基本的功能:
1 |
|
4.端口控制定时任务开关或设置项目启动自动开启定时任务
此处简单实现一下通过端口控制定时任务的开关:
1 |
|
附件:SpringUtil工具类
1 | /** |