14.16. XXL-JOB

14.16.1. 部署admin

14.16.1.1. 准备源码

获取源码:

git clone https://github.com/xuxueli/xxl-job.git

安装xxl-job-core:

cd xxl-job/xxl-job-core
mvn install
cd xxl-job
mvn dependency:resolve

初始化数据库:

cd xxl-job/doc/db
lxc file push tables_xxl_job.sql mysql-master/root/
lxc exec mysql-master -- bash
mysql
mysql> source tables_xxl_job.sql

创建mysql账号

CREATE USER 'xxljob'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON xxl_job.* TO 'xxljob'@'%';

14.16.1.2. xxl-job-admin

修改配置:

修改xxl-job-admin源码中的application.properties

spring.datasource.url=jdbc:mysql://10.196.126.10:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=账号
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

打包:

cd xxl-job-admin
mvn package
lxc file push target/xxl-job-admin-2.4.1.jar xxl-job-admin-1/root/
lxc file push target/xxl-job-admin-2.4.1.jar xxl-job-admin-2/root/

启动

java -jar xxl-job-admin-2.4.1.jar

访问

http://10.196.126.21:8080/xxl-job-admin/

默认登录账号 “admin/123456”,

调度中心支持集群部署,提升调度系统容灾和可用性。

调度中心集群部署时,几点要求和建议:

DB配置保持一致; 集群机器时钟保持一致(单机集群忽视); 建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。

startup.sh

#!/bin/bash

# XXL-JOB Admin 2.4.1 安装路径
XXL_JOB_JAR_PATH="/root/xxl-job-admin-2.4.1.jar"

# 检查是否安装了 Java
if ! command -v java &> /dev/null
then
    echo "Java 未安装。请先安装 Java。"
    exit 1
fi

# 检查 XXL-JOB JAR 文件是否存在
if [ ! -f "$XXL_JOB_JAR_PATH" ]; then
    echo "未找到 XXL-JOB JAR 文件:$XXL_JOB_JAR_PATH"
    exit 1
fi

# 启动 XXL-JOB Admin
nohup java -jar "$XXL_JOB_JAR_PATH" > /root/xxl-job-admin.log 2>&1 &

# 检查 XXL-JOB Admin 是否成功启动
if [ $? -eq 0 ]; then
    echo "XXL-JOB Admin 已成功启动。日志文件:/root/xxl-job-admin.log"
else
    echo "XXL-JOB Admin 启动失败。"
    exit 1
fi

shutdown.sh

#!/bin/bash

# 获取 XXL-JOB Admin 进程 ID
PID=$(ps -ef | grep 'xxl-job-admin-2.4.1.jar' | grep -v 'grep' | awk '{print $2}')

# 检查是否找到进程 ID
if [ -z "$PID" ]; then
    echo "未找到 XXL-JOB Admin 运行的进程。"
    exit 1
fi

# 停止 XXL-JOB Admin 进程
kill "$PID"

# 检查 XXL-JOB Admin 是否成功停止
if [ $? -eq 0 ]; then
    echo "XXL-JOB Admin 已成功停止。"
else
    echo "停止 XXL-JOB Admin 失败。"
    exit 1
fi

配置负载均衡

14.16.2. 执行器

修改配置

vim xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
# 修改成xxl-job-admin的地址,如果admin是集群,则使用负载均衡器的地址。
xxl.job.admin.addresses=http://10.196.126.14/xxl-job-admin

# 执行器的名字,如果执行器要实现集群,名字要统一。
xxl.job.executor.appname=xxl-job-executor-sample

# 其他属性根据情况来吧。

运行

java -jar xxl-job-executor-sample-springboot-2.4.1.jar

执行器运行后,在xxl-job-admin的执行器管理中,可以看到注册的执行器的实例。