首先访问其官网有详细教程,下面只是我的一些总结和遇到的坑
https://www.xuxueli.com/xxl-job/
主要步骤
1、环境配置
- Maven3+
- Jdk1.8+
- Mysql5.7+
2、下载源码、解压
3、在源码的
/xxl-job/doc/db/tables_xxl_job.sql
路径下,找到调度数据库初始化SQL脚本并执行
4、
解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:
xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
xxl-job-executor-sample-frameless:无框架版本;
5、配置部署“调度中心”
调度中心项目:xxl-job-admin
作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
这里主要注意的问题就是配置问题
看官方文档就可以解决大部分,在这里遇到一个问题邮件发送不出去
有两个配置需要注意(以qq邮箱发送告警邮件)
spring.mail.port=25 阿里云服务器不能使用25端口,可能是被禁用了,我这里换成465端口就可以spring.mail.password=******* 这里的密码并非邮箱密码而是qq邮箱的授权码,具体操作百度一下
6、打包部署,调度中心访问地址 http://localhost:8080/xxl-job-admin
默认登录账号 “admin/123456”, 登录后运行界面如下图所示。
至此“调度中心”项目已经部署成功。
7、配置部署“执行器项目”
我这里是将执行器集成到现有Springboot业务项目中
a、在项目pom文件中引入了 “xxl-job-core” 的maven依赖;
<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.30.</version>
</dependency>
b、执行器配置
将改地址下的配置文件里面相关的配置复制到自己项目的配置文件里面
/xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
这里要注意下面这个配置
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999
d、将所需要的文件集成到自己的项目里,如下图
然后将自己以前的定时任务注释掉,添加
@XxlJob("XXXJobHandler")注释,注意这里的XXXJobHandler,要和后面调度中心里面的配置一致
将项目中的定时任务都修改完之后,打包部署即可
这里都是基于Bean模式任务,支持基于方法的开发方式,每个任务对应一个方法。
- 优点:
- 每个任务只需要开发一个方法,并添加”@XxlJob”注解即可,更加方便、快速。
- 支持自动扫描任务并注入到执行器容器。
8、回到任务调度中心页面新建任务
这里新增执行器建议手动录入,自动注册可能存在断开连接的问题
新增任务注意以下几个地方,然后启动执行就可以了,这里可添加邮件告警,也可以自己重写其他告警接口,如短信告警、钉钉告警等。