使用 Docker 快速部署 XXL-JOB(实战一)

📝 前言

之前一期跟大家分享了《定时任务之 XXL-JOB 入门介绍》,主要是介绍了一些关于XXL-JOB的相关基础概念,并与其他常用调度器进行了对比,有了初步的认知这一期我们再来通过Docker快速部署实战一下。

🧭 背景介绍

XXL-JOB 是一个轻量级的分布式任务调度平台,广泛应用于微服务系统中的定时任务处理。

其调度中心支持 Web UI 管理,执行器支持多语言扩展(如 Java、Python、Shell 等),是很多企业任务调度的首选方案。

目前 nCalendar 也是选择使用XXL-JOB来做第三方定时通知。

🔍 使用场景

  • 中小型团队需要快速上线一个可视化定时任务调度平台
  • 自动化运行数据脚本、接口调用、日志清洗、定时通知等任务
  • 测试或开发环境中快速体验 XXL-JOB

📋 前提条件

在开始之前,请确保你已满足以下条件:

🚀 详细步骤

1️⃣ 下载 XXL-JOB 初始化 SQL 脚本

由于XXL-JOB依赖数据库存储一些配置和任务信息,因此在部署之前我们需要先初始化数据库和表。

从 GitHub 下载初始化数据库脚本:

1
wget https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/db/tables_xxl_job.sql

PS:也可以直接把整个项目源码下载下来,sql 脚本文件就在项目根目录的doc/db/下面。

2️⃣ 导入SQL脚本到MySQL数据库

安装 mysql 客户端工具(Ubuntu):

1
apt install mysql-client-core-8.0

导入SQL脚本:

1
mysql -h[数据库服务器IP] -uroot -p[数据库root密码] < tables_xxl_job.sql

验证是否已创建xxl_job数据库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 连接MySQL数据库
mysql -h[数据库服务器IP] -uroot -p[数据库root密码]

# 查看数据库
# 若输出中存在 xxl_job 则表示数据库已创建成功
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| xxl_job |
+--------------------

PS:也可以直接使用本地图形化客户端工具,只要能导入 SQL 脚本即可。

3️⃣ 部署 XXL-JOB 服务

使用 Docker 一键部署 XXL-JOB:

1
2
3
4
5
6
7
docker run --name xxl-job-admin \
-e PARAMS="--xxl.job.accessToken=default_token" \
-e SPRING_DATASOURCE_URL="jdbc:mysql://[数据库服务器IP]:3306/xxl_job?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=[数据库root密码] \
-dp 8080:8080 \
xuxueli/xxl-job-admin:3.1.1

查看容器日志确保已正常启动:

1
docker logs -f xxl-job-admin

4️⃣ 访问 XXL-JOB

部署完成后,打开浏览器,输入服务器IP+8080端口/xxl-job-admin,即可访问,例如:

1
http://192.168.10.2:8080/xxl-job-admin

默认账号密码:

  • 用户名:admin
  • 密码:123456

登录后的首页:

PS:注意如果是部署在服务器上,尽量不要开放公网访问,如果确实要暴露在公网也一定要改密码!

✅ 总结

本篇介绍了如何使用 Docker 快速部署 XXL-JOB,包括数据库初始化、调度中心部署以及访问XXL-JOB。

该方案适合快速开发验证、测试环境使用,也可扩展到生产环境。

限于篇幅下一期再介绍如何使用XXL-JOB,咱们下次见 Have a good day ~