章
目
录
本文主要讲解关于Docker如何安装xxl-job并整合springboot3相关内容,让我们来一起学习下吧!
前言
xxl-job 是一个分布式任务调度平台,它提供了强大的任务调度和执行能力,可以帮助我们实现任务的自动化调度和执行。本文将介绍如何在 Docker 环境下部署 xxl-job,并将其与 Spring Boot 进行整合。
初始化数据库
拿到数据库脚本就去执行初始化,很简单,数据库脚本:tables_xxl_job-2.4.0.sql,该脚本可以从官方开源项目下载,点此去查看
Docker 部署 xxl-job
下载镜像
Docker 镜像地址: 查看xxl-job镜像
# 建议指定版本号
docker pull xuxueli/xxl-job-admin:2.4.0
创建容器并运行
创建日志挂载目录
mkdir -p /logs/xxl-job
创建容器并运行
docker run -d --name xxl-job-admin
-e PARAMS="--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=123456"
-e JAVA_OPTS="-Xms512M -Xmx512m"
-p 8080:8080
-v /logs/xxl-job:/data/applogs
xuxueli/xxl-job-admin:2.4.0
访问调度中心
调度中心管控台地址:http://localhost:8080/xxl-job-admin
默认登录账号密码:admin/123456
SpringBoot 整合 xxl-job
pom.xml
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.0</version>
</dependency>
application.yml
# xxl-job 定时任务配置
xxl:
job:
admin:
# 多个地址使用,分割
addresses: http://127.0.0.1:8080/xxl-job-admin
accessToken: default_token
executor:
appname: xxl-job-executor-${spring.application.name}
address:
ip:
port: 9999
logpath: /data/applogs/xxl-job/jobhandler
logretentiondays: 30
XxlJobConfig.java
XXL-JOB 自动装配配置
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Configuration
@Slf4j
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.appname}")
private String appname;
@Value("${xxl.job.executor.address}")
private String address;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appname);
xxlJobSpringExecutor.setAddress(address);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
}
执行器注册查看
需要 SpringBoot 应用和调度中心在同一网络,网络不互通则调度器无法调度执行器
启动 SpringBoot 工程 之后,前往调度中心查看执行器注册结果
定时任务测试
添加测试任务
在项目中添加名为 demoJobHandler
的任务处理器(Bean模式)
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* xxl-job 测试示例(Bean模式)
*/
@Component
@Slf4j
public class XxlJobSampleHandler {
@XxlJob("demoJobHandler")
public void demoJobHandler() {
log.info("XXL-JOB, Hello World.");
}
}
配置定时任务
调度中心新增测试任务,运行模式为 BEAN
, 任务处理器为 demoJobHandler
测试结果
结语
通过本文的实战演示,我们成功地将 xxl-job 部署到 Docker 环境中,并与 Spring Boot 进行了整合。我们了解了 xxl-job 的基本概念和特点,并学习了如何配置调度器任务、开启任务,并调用执行器执行任务。xxl-job 提供了强大的任务调度和执行能力,可以帮助我们实现任务的自动化调度和执行,提高工作效率。
以上就是关于Docker如何安装xxl-job并整合springboot3相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!