《从零打造项目》系列文章
工具
- 比MyBatis Generator更强大的代码生成器
ORM框架选型
- SpringBoot项目基础设施搭建
- SpringBoot集成Mybatis项目实操
- SpringBoot集成Mybatis Plus项目实操
- SpringBoot集成Spring Data JPA项目实操
数据库变更管理
- 数据库变更管理:Liquibase or Flyway
- SpringBoot结合Liquibase实现数据库变更管理
定时任务框架
- Java定时任务技术分析
- SpringBoot结合Quartz实现定时任务
- SpringBoot结合XXL-JOB实现定时任务
缓存
- Spring Security结合Redis实现缓存功能
安全框架
- Java应用程序安全框架
- Spring Security系列文章
- Spring Security结合JWT实现认证与授权
开发规范
- 后端必知:遵循Google Java规范并引入checkstyle检查
上篇文章我们介绍了 Quartz 的使用,当时实现了两个简单的需求,不过最后我们总结的时候也提到 Quartz 有不少缺点,代码侵入太严重,所以本篇将介绍 xxl-job 这个定时任务框架。
Quartz 的不足:Quartz 作为开源任务调度中的佼佼者,是任务调度的首选。但是在集群环境中,Quartz采用API的方式对任务进行管理,这样存在以下问题:
官方说明:XXL-JOB 是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
通俗来讲:XXL-JOB 是一个任务调度框架,通过引入 XXL-JOB 相关的依赖,按照相关格式撰写代码后,可在其可视化界面进行任务的启动,执行,中止以及包含了日志记录与查询和任务状态监控。
更多详细介绍推荐阅读官方文档。
Spring Boot 集成 XXL-JOB 主要分为以下两步:
xxl-job-admin 可以从源码仓库中下载代码,代码地址有两个:
下载完之后,在 doc/db 目录下有数据库脚本 tables_xxl_job.sql,执行下脚本初始化调度数据库 xxl_job,如下图所示:
将下载的源码解压,用 IDEA 打开,我们需要修改一下 xxl-job-admin 中的一些配置。(我这里下载的是最新版 2.3.1)
1、修改 application.properties,主要是配置一下 datasource 以及 email,其他不需要改变。
### xxl-job, datasource spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ### xxl-job, email spring.mail.host=smtp.qq.com spring.mail.port=25 spring.mail.username=1739468244@qq.com spring.mail.from=1739468244@qq.com # 此处不是邮箱登录密码,而是开启SMTP服务后的授权码 spring.mail.password=xxxxx
2、修改 logback.xml,配置日志输出路径,我是在解压的 xxl-job-2.3.1 项目包中新建了一个 logs 文件夹。
然后启动项目,正常启动后,访问地址为:http://localhost:8080/xxl-job-admin,默认的账户为 admin,密码为 123456,访问后台管理系统后台。
这样就表示调度中心已经搞定了,下一步就是创建执行器项目。
本项目与 Quartz 项目用的业务表和业务逻辑都一样,所以引入的依赖会比较多。
1、引入依赖:
org.springframework.boot spring-boot-starter-parent 2.6.3 1.8 1.2.73 5.5.1 8.0.19 1.4.2.Final 1.18.20 1.1.18 1.6.9 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-aop com.xuxueli xxl-job-core 2.3.1 com.baomidou mybatis-plus-boot-starter 3.5.1 com.baomidou mybatis-plus 3.5.1 mysql