当前位置:   article > 正文

Springboot集成quartz

springboot集成quartz

1.添加依赖

#该依赖有spring对quartz的支持
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
</dependency>
<dependency> 
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.2.1</version>
</dependency>
<dependency> 
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.2.1</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.实现思路
参考https://blog.csdn.net/lkl_csdn/article/details/73613033
https://www.jianshu.com/p/e95d6764b4d9

自定义注解标注在定时任务类和定时方法上
定义实体类,包含类名、方法名,状态等属性
定义一个扫描类,实现ApplicationContextAware接口和InitializingBean,获取到ApplicationContext对象,利用ApplicationContext对象获取到所有标注了自定义注解的类,然后拿到所有标注了自定义注解的方法,将属性插入到数据库。覆盖afterPropertiesSet方法,在该方法中调用上述方法。
定义工具类ApplicationContextUtil,利用ApplicationContextUtil根据全类名获取具体的对象。再拿到对象下所有标注了自定义注解的方法,执行该方法
定义监听器类实现ApplicationListener接口,去数据库查询所有定时任务,如果状态为null,则设为running,并修改数据库数据,把它添加到Scheduler。如果状态为not running ,则暂停该任务,最后调用start方法启动Scheduler。
实现job接口,覆盖execute方法,调用上述工具类方法
定义Controller和Service,在service中注入SchedulerFactoryBean,想直接引用SchedulerFactoryBean,要先把它注入到ioc容器中,使用@component注解+bean注解注入SchedulerFactoryBean。利用SchedulerFactoryBean来获取Scheduler,并且用Scheduler定义一个start方法。提供动态调度定时任务的接口。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/981768
推荐阅读
相关标签
  

闽ICP备14008679号