Docker安装xxl-job并整合springboot3

后端 潘老师 5个月前 (12-12) 153 ℃ (0) 扫码查看

本文主要讲解关于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

配置 Corn 表达式,让其每秒执行一次任务

启动定时任务

测试结果

成功,频率为1s执行一次。

结语

通过本文的实战演示,我们成功地将 xxl-job 部署到 Docker 环境中,并与 Spring Boot 进行了整合。我们了解了 xxl-job 的基本概念和特点,并学习了如何配置调度器任务、开启任务,并调用执行器执行任务。xxl-job 提供了强大的任务调度和执行能力,可以帮助我们实现任务的自动化调度和执行,提高工作效率。

以上就是关于Docker如何安装xxl-job并整合springboot3相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.panziye.com),学习愉快哦!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/12489.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】