1.xxl_job概述
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现源代码并接入多家公司线上产品线,开箱即用。在运维工作主要是为了方便集中管理,集中调度服务器上的定时任务。
2.xxl_job基础
系统:centos7.4 编译工具:mvn3.6.4 语言环境:java1.8.0_92 数据库:MySQL5.7.26 相关软件包地址:链接:https://pan.baidu.com/s/1JhORcUWQY-EeysRl_qsSDQ 提取码:gEt5 复制这段内容后打开百度网盘手机App,操作更方便哦
3.mvn部署
# tar -xf apache-maven-3.6.0-bin.tar.gz -C /usr/local/
# vim /etc/profie #配置环境变量
MAVEN_HOME=/usr/local/apache-maven-3.6.0/
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
# source /etc/profile
# mvn --version
4.java部署
# tar -xf jdk1.8.0_92.tar.gz -C /usr/local/
# vim /etc/profie #配置环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_92
export JAVA_BIN=/usr/local/jdk1.8.0_92/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# source /etc/profie
# java -version
5.数据库部署
# tar -xf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
# yum install -y mysql-community-*.rpm
# systemctl restart mysqld
# grep pass /var/log/mysqld.log #获取初始化密码
# mysql -uroot -p
mysql> set password = password('************');
mysql> FLUSH PRIVILEGES;
6.xxl_job部署
xxl_job下载地址:https://github.com/xuxueli/xxl-job
# cd xxl-job-master
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:无框架版本; 本地主要是php语言,所以使用的xxl-job-executor-sample-spring这个执行器; 一个执行器相当于一个客户端,一个执行器下可以有多个任务;一台服务器也可以有多个执行器。 特别需要将一些基础表导入至数据库中,数据库表结构在xxl-job-master/doc/db/tables_xxl_job.sql
# mysql -uroot -p
mysql> create database xxl_job;
mysql> use xxl_job;
mysql> source /root/xxl-job-master/doc/db/tables_xxl_job.sql #导入基础表信息
# vim xxl-job-admin/src/main/resources/application.properties
对于这个配置需要进行如下修改
### web
server.port=9080 #默认是8080,为了避免端口冲突,建议使用其他端口
#server.servlet.context-path=/xxl-job-admin #注释掉,在访问web页面只需要加端口即可
### 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=*********** #主要是数据库密码方面
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
### xxl-job, access token
xxl.job.accessToken= #为了服务的安全强烈加上Token,可以随机写,复杂点好,另外在客户端也需要设置和这个一样的Token
进行代码编译
# cd /root/xxl-job-master/
# mvn clean
# mvn compile
# mvn package
编译完成后,打包后的代码在 /root/xxl-job-master/xxl-job-admin/target/ 可以在这个目录下直接用java -jar xxl-job-admin-2.3.0-SNAPSHOT.jar zhiie直接启动即可 本文采用的是在/usr/local/目录下新建一个目录
# mkdir /usr/local/xxl-job-admin
# mv /root/xxl-job-master/xxl-job-admin/target/* /usr/local/xxl-job-admin/
# cd /usr/local/xxl-job-admin
# nohup java -jar xxl-job-admin-2.3.0-SNAPSHOT.jar >& /dev/null &
访问地址:http://ip:9080 默认用户名:admin 密码:123456 登陆界面如下: 运行报表:执行结果相关数据 任务管理:可以理解为定时器 调度日志:任务执行的输出日志 执行器管理:可以理解为客户端
7.xxl_client(客户端)部署
客户端配置如下情况:
# vim xxl-job-master/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
# web port
server.port=9081 #建议修改其他端口,默认是8081
# no web
#spring.main.web-environment=false
# log config
logging.config=classpath:logback.xml
### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://*.*.*.*:9080 #服务器地址
### xxl-job, access token
xxl.job.accessToken= #和服务端的Token一样
### xxl-job executor appname
xxl.job.executor.appname=test-01 #客户端名称
### xxl-job executor registry-address: default use address to registry , otherwise use ip:port if address is null
xxl.job.executor.address=
### xxl-job executor server-info
xxl.job.executor.ip=
xxl.job.executor.port=9999 #客户端连接服务端的端口
进行代码编译
# cd /root/xxl-job-master/
# mvn clean
# mvn compile
# mvn package
# mkdir /usr/local/xxl-job-client
# mv xxl-job-executor-samples/xxl-job-executor-sample-springboot/target/* /usr/local/xxl-job-client/
# nohup java -jar xxl-job-executor-sample-springboot-2.3.0-SNAPSHOT.jar >& /dev/null &
以上配置完成一个客户端的配置,再返回服务端web管理进行配置即可。
在返回至任务管理中心,配置一个任务进行测试
加*处是必填项 刚刚新建的任务,如下图: 执行一次,启动的话就会按照调度类型进行执行,那选择启动,返回调度日志进行查询 ,查看是否设置成功,如下图表示设置成功:
更新资料可以关注官方社区