一、Spring Boot 定时任务 @Scheduled
这种方式是通过@Scheduled注解实现定时任务,主要需要定时任务的类和在主启动类上增加@EnableScheduling注解。其中比较关键的是Cron表达式,用来控制任务具体执行的时间。
cron:https://blog.csdn.net/bingduanlbd/article/details/51740913
1.MyScheduledTask
1 |
|
2.主启动类
1 |
|
二、Spring boot + Quartz框架实现定时任务
可以以两种方式实现,第一种是在Quartz的配置类中,调用固定的Job,这种是死的代码,和一里面的一样,第二种方式是使用数据库,灵活配置定时任务,包括增删改。
1.实现代码
a.application.yml
1 | spring: |
b.QueratzConfig
1 | package com.zhaixin.config; |
c.MyJob任务
1 | package com.zhaixin.job; |
d.JobFactory
由于job实例是通过反射创建的,不会出现在spring容器中,需要手动注入
1 | package com.zhaixin.config; |
e.DataSourceConfig配置
数据源配置
1 | package com.zhaixin.config; |
f.定时任务的service以及实体
1 | package com.zhaixin.service; |
j.别忘了要先创建数据库
1 | # |
小结:
使用这种方式,直接可以在Controller中控制定时任务的增删改,具体要调用哪个Job,也是根据配置来的。同时,建议数据源要分开。
参考:
https://www.cnblogs.com/youzhibing/p/10024558.html
https://segmentfault.com/a/1190000020956971?utm_source=sf-related
https://segmentfault.com/a/1190000022552084
https://blog.csdn.net/bicheng4769/article/details/85282057
https://blog.csdn.net/bicheng4769/article/month/2018/12
https://segmentfault.com/a/1190000016554033?utm_source=sf-related