从一开始查看springbatch的官方文档就知道了springbatch主要是支持批处理的执行框架, 它对任务调度方面实在是没有做出什么封装, 从跑起spring batch工程的第一个任务开始, 上头就要求要把任务的执行时间实现cron表达式的可配置化, 当向要修改的时候并不需要修改配置文件, 重启工程等等麻烦的事情, 网上查找各种资料知道 xxl-job 及当当网开源的elastic-job,这里我就介绍xxl-job与spring batch的集成使用:
第一步: 首先要部署 xxl-job的调度中心工程, 我这里部署的是这样的:
我部署的包是: xxl-job-admin-2.1.2-SNAPSHOT.jar
工程下载地址可以从git 上clone到本地:
git clone https://gitee.com/gaotingping/xxl-job.git
然后在目录下面打包:https://gitee.com/hongdu_dudua1/xxl-job-demo
然后将打好的包上传到虚拟机或者云服务器上面, 目前我这里使用的是VMware 安装的虚拟机 Centos7,虚拟机的安装包网上可以自行下载, 或者私聊也可以单发。
注意一点: 因为调度中心 xxl-job-admin-2.1.2-SNAPSHOT.jar 也是需要连接数据库的, 所以在本地需要先将sql脚本建好, 并配置本地数据库也允许云服务器或者虚拟机连接, 这个配置主要是将mysql的 user表的 字段Host的 localhost修改为%:
自然地需要修改调度中心的数据库连接地址: 连接地址自然是本地ip:3306;
如果使用的云服务器, 需要打开防火墙的端口访问权限;(不然会一直无法连接)
第二步: 这里使用的springboot集成的xxl-job,同时也是用的springboot集成的spring batch : (无缝集成)
然后通过继承 IJobHandler 实现任务的方法, 在这个方法里面我们可以将批处理任务的内部执行逻辑添加进去, 就完成了 xxl-job与spring batch的集成: 它的集成可以可以理解为: 任务调度中心与任务执行批处理的一个配合。
具体代码可以参考:
https://gitee.com/hongdu_dudua1/xxl-job-demo
参考: https://blog.csdn.net/masson32/article/details/91503723
https://blog.csdn.net/u010222318/article/details/78930177
https://blog.csdn.net/hao134838/article/details/86681551