引言
在上一篇博客中介绍了通过 spring schedule+mysql实现动态修改cron表达式,在文章末尾提出这样的修改不能即时生效,需要在上一次执行周期完成后生效,对于当期的需求是可以满足的,但是如果想即时生效比较麻烦,记得之前看过类似的技术文章,所以在这遍研究了一下xxl-job.,我们首先先搭建起来非常简单:
1、下载源码
源码地址:https://github.com/xuxueli/xxl-job
官方文档:http://www.xuxueli.com/xxl-job/
按照我们打开maven项目的方式打开即可。
2、创建数据库
请下载项目源码并解压,获取 "调度数据库初始化SQL脚本" 并执行即可,正常情况下应该生成16张表。
"调度数据库初始化SQL脚本" 位置为: /xxl-job/doc/db/tables_xxl_job.sql
3、配置部署调度中心
我们只需要在 xxl-job-admin这个项目中修改我们的数据库连接信息即可
这个项目是个springboot的项目,所以我们可以直接在本地启动即可,其余的都不需要修改。关于这里面的配置说明,我们可以参考官方文档,启动成功以后,我们访问地址:http://localhost:8080/xxl-job-admin 登陆即可 用户名:admin 密码:123456
4、配置和部署执行器项目
我们直接将xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-spring 项目打包成war部署即可。
5、配置执行器
我们可以直接使用默认的执行器即可
6、增加任务
我们可以通过管理端增加任务,这里我们介绍两种方式:Bean 和GLUE(java)
Bean模式:
这是我们需要注意的地方就是,选择我们有效的执行器,然后在JobHandler这个地方输入 job名称,这个名称需要和代码中的一致:
这样我们配置完成了一个任务,然后启动即可了
GLUE(java)模式:
配置完成以后我们点击 GLUE输入我们的java代码:
这些代码我们可以现在IDE中编写完成以后,在复制到这里即可。
这样我们就完成了整个流程,从上面的demo中大家可以看到,我通过http请求控制了我另外的项目了,所以对于执行的代码我们可以单独部署成一个项目,也可以集成到我们的项目中作为一个模块即可,并且我们可以随时封装成自己想要的功能。
总结
总体来说这个过程非常的简单,并且文档写的特别详细,所以在初次接触的时候我们只要详细看两遍文档即可。