XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。
1、源码下载地址
①、GitHub:https://github.com/xuxueli/xxl-job
②、码云:https://gitee.com/xuxueli0323/xxl-job
2、文档地址
①、中文文档:http://www.xuxueli.com/xxl-job/#/
②、英文文档:http://www.xuxueli.com/xxl-job/en/#/
XXL-JOB官方只有Mysql版本的DEMO,我这里学习的是oracle版本工程,并在自己电脑上修改了部分配置代码后现已正常运行。这里给出我自己的工程资源链接,欢迎下载:
https://download.csdn.net/download/nannan7777/12613993
分布式任务调度平台XXL-JOB的Oracle版本搭建
我这里已安装的基础环境与工具有:
Jdk1.8
,IntelliJ IDEA 2020
,Navicat Premium15
,Oracle 11gR2
,PLSQL Developer
,Maven3
1、导入oracle表结构
首先解压源码,获取 “调度数据库初始化SQL脚本” 并在Oracle数据库中执行。可以在PLSQL Developer
可视化工具中执行,也可以使用Navicat
数据库管理工具,个人感觉Navicat更好用一些,界面与操作比较直观。
调度数据库初始化SQL脚本位置为:xxl-job-mysql-oracle-master\doc\db\tables_xxl_job_oralce.sql
(这是自己借鉴修改的导入oracle表结构脚本文件,折腾了两天 =w=)
新建数据库连接,选择Oracle
,会弹出一个新建连接的对话框,这里连接名可以自己设定,主机输入localhost
,用户名与密码为自己在安装Oracle应用程序的过程中设置的用户名与密码(我当时设置的是system,123456
)如下图所示:
点击确定后就建立了Oracle数据库连接,正确连接时会在左侧显示红色图标。之后创建新用户与表空间,在常规栏设置用户名与密码等配置项,在成员属于栏选择管理员DBA,如下图所示:
之后鼠标右键选中新建用户,选择“运行SQL文件”命令,将上文提到的调度数据库初始化SQL脚本加载进来,如无报错并正确生成如下表与序列则代表SQL脚本加载正确:
2、项目导入与配置项修改
按照maven格式将源码导入IDEA,使用maven进行编译。源码结构如下:
xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
:xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
:xxl-job-executor-sample-spring:Spring版本,通过Spring容器管理执行器,比较通用;
:xxl-job-executor-sample-frameless:无框架版本;
:xxl-job-executor-sample-jfinal:JFinal版本,通过JFinal管理执行器;
:xxl-job-executor-sample-nutz:Nutz版本,通过Nutz管理执行器;
:xxl-job-executor-sample-jboot:jboot版本,通过jboot管理执行器;
打开xxl-job-admin
模块里面的application.properties
文件配置自己的oracle数据库信息,主要包括Oracle数据库的url
,刚才在navicat中设置的用户名与密码,如下图所示:
之后在配置文件xxl-job-mysql-oracle-master\xxl-job-admin\pom.xml
中引入ojdbc7
的jar包,添加代码如下:
<!-- oracle -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>${oracle-jdbc.version}</version>
</dependency>
完成后对工程进行编译,该工程是一个springboot项目,只需要在IDEA中执行 XxlJobAdminApplication 类即可运行该工程,如果显示如下图所示信息代表工程运行正确:
之后打开浏览器输入任务调度中心访问地址:http://localhost:8080/xxl-job-admin
默认登录账号 “admin/123456”, 登录后运行界面如下图所示:
3、创建执行器
首先在配置文件xxl-job-mysql-oracle-master\xxl-job-admin\pom.xml
中引入xxl-job-core
的依赖,添加代码如下:
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
xxl-job-executor-sample-springboot
模块里面的application.properties
文件可对执行器组件数值进行设置,如下图所示:
xxl-job-executor-sample-springboot
模块里面的XxljobConfig
文件是执行器组件配置,如下图所示:
之后可以在执行器项目中新建自己的任务,文件位置为:com/xxl/job/executor/service/jobhandler/SampleXxlJob.java
,如下图所示,这里定义了一个执行打印的简单任务执行器:
最后使用maven-compiel
指令部署执行器,即将执行器打包成springboot类型的可执行JAR
包,如下图所示,如果显示BUILD SUCCESS没有其他错误则证明执行器已成功打包。
可以在终端中执行java -jar xxxx.jar
运行执行器,也可以直接在IDEA中执行 XxlJobExecutorApplication
类运行该执行器,如果显示如下图所示信息代表工程运行正确:
4、实测-新建任务
任务调度中心和执行器已经成功部署并启动之后就可以新建任务进行调度测试了。
登录任务调度中心,点击下图所示“新建执行器”按钮,可以新建执行器。注意这里的执行器AppName
需要跟xxl-job-executor-sample-springboot
模块里面application.properties
文件中的xxl.job.executor.appname
保持一致:
之后点击下图所示“新建任务”按钮,新建示例任务。参考下面截图中任务的参数配置,点击保存,注意这里的JobHandler
需要跟SampleXxlJob.java
文件中定义的执行器任务value值保持一致:
保存以后点击启动,可以在调度中心,查看调度日志,如下图所示:
至此,XXL-JOB的Oracle版本任务发布与调用流程已经跑通了,其架构图如下所示:
————————————————————————————————————————————
每天都想吃西瓜的乔木小姐
2020年07月14日