风风火火,恍恍惚惚,springboot2.6.0正式版也发布了,同时也宣布了2.4x版本停止维护。2.5.x系列也是目前自己写Demo在用的,为什么要记录下来呢, 主要我把项目升级到2.6之后项目跑不起来了,原因我知道,但是我不知道怎么解决,看了看机翻的更新文档,有处可能是影响我项目跑不起来的原因,就是限制了依赖的循环导入,现在依赖循环导入,项目是会直接跑不起来。我的问题是项目里获取不到DataSource数据源,我用了各种姿势,都获取不到,靓仔在线疑惑。既然不能无缝升级,那我就记下来一个正常的版本。
定时任务是很常用的一个功能,比如简单的生日提醒,每天定点查询用户的生日信息。然后发出一系列的提示操作。不了解你就感觉很难,但是现在spring给我们带来了很多的便利,看一看,在头脑风暴一下,也不难。编程一途,殊途同归。
主要工作中好多同步代码感觉都可以使用定时任务来处理,然而实际上用的是一个一个的Main方法,吐槽吧,人家那代码又不是不能跑,不仅能跑,还能赚钱。没啥好吐槽的,就是维护时想骂娘,骂娘就骂娘,还十分容易出错。
核心配置类
用了这个配置类,腰不酸了,腿不痛了,一次能爬五层楼。觉也睡的香了。好吧,前面纯属扯淡,写了这个yml中就不需要配置了,大致看一下每行的注释,测试学习中以先跑起来为主,然后再慢慢研究即可。
此种配置的Quartz是持久化到数据库的,就是项目重启定时任务的状态并不会丢失。
用于Web管理Bean
可以自定义,要点看代码注释。
定时任务执行日志Bean
主要就是记录一下日志,可根据自己需求,自行扩展。
执行定时任务的上下文
定时任务处理器
定时任务启动处理类
Web接口
定时任务类
新增接口接口BaseTaskService.java
通用定时任务
异常的定时任务
后话
建表语句以及测试项目源码,mock.http文件中里面有测试数据,IDEA可以很方便的测试。
源码
封面