XXL-Job的搭建&接入Springboot项目(详细)

这篇具有很好参考价值的文章主要介绍了XXL-Job的搭建&接入Springboot项目(详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、XXL-Job介绍

XXL-Job 是一款开源的分布式任务调度平台,由 Xuxueli(徐雪里)开发。它基于 Java 技术栈,提供了一套简单易用、高可靠性的任务调度解决方案。

XXL-Job 的主要作用是帮助开发者实现定时任务的调度和执行。它可以用于定时执行各种类型的任务,例如定时生成报表、定时发送邮件、定时清理数据等。通过 XXL-Job,开发者可以非常方便地管理和监控任务的执行情况,实现任务的自动化调度。

XXL-Job 提供了一个可视化的任务管理界面,可以进行任务的创建、编辑、删除和暂停等操作。同时,它还支持任务的分片并行执行,提高任务的处理效率。XXL-Job 还提供了丰富的任务调度配置选项,如定时触发、CRON 表达式、间隔触发等,满足不同任务调度需求。

除了任务调度功能,XXL-Job 还提供了任务日志记录和报警功能。它可以将任务的执行日志记录下来,方便排查问题和分析任务执行情况。同时,XXL-Job 还支持邮件、钉钉等方式的报警通知,及时告知任务执行异常或失败的情况。

总结来说,XXL-Job 是一款功能强大的分布式任务调度平台,可以帮助开发者实现定时任务的调度和执行。它提供了任务管理、任务调度配置、任务日志记录和报警等功能,方便开发者进行任务的管理和监控。

官网地址

分布式任务调度平台XXL-JOB

这个上面有关于xxl-job的详细介绍和各个功能说明。有需要的可自行去了解官方提供的文档。

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

系统架构图

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

调度中心作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
执行器作用:负责接收“调度中心”的调度并执行。

二、下载xxl-job

1.环境准备

  • Maven3+
  • Jdk1.8+
  • Mysql5.7+

2.源码仓库地址

githup:

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

Gitee:

xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

GitCode:

GitCode - 开发者的代码家园

3.中央仓库地址

目前最新的版本是2.4.1

    <!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
    <dependency>
        <groupId>com.xuxueli</groupId>
        <artifactId>xxl-job-core</artifactId>
        <version>${最新稳定版本}</version>
    </dependency>

三、快速入门

1.拉取代码

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

拉取下来的目录结构如下:

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

xxl-job-admin:调度中心
xxl-job-core:公共依赖
xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
    :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
    :xxl-job-executor-sample-frameless:无框架版本;

2.初始化调度数据库

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

将tables_xxl_job.sql文件导入到我们数据库中,表结构如下:

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

3.配置部署调度中心

调度中心项目:xxl-job-admin

作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台

 调度中心配置文件地址:

   /xxl-job/xxl-job-admin/src/main/resources/application.properties

调度中心配置内容说明:

    ### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致
    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=root_pwd
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    ### 报警邮箱
    spring.mail.host=smtp.qq.com
    spring.mail.port=25
    spring.mail.username=xxx@qq.com
    spring.mail.password=xxx
    spring.mail.properties.mail.smtp.auth=true
    spring.mail.properties.mail.smtp.starttls.enable=true
    spring.mail.properties.mail.smtp.starttls.required=true
    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
    ### 调度中心通讯TOKEN [选填]:非空时启用;
    xxl.job.accessToken=
    ### 调度中心国际化配置 [必填]: 默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;
    xxl.job.i18n=zh_CN
    ## 调度线程池最大线程配置【必填】
    xxl.job.triggerpool.fast.max=200
    xxl.job.triggerpool.slow.max=100
    ### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能;
    xxl.job.logretentiondays=30

想让调度中心运行起来,最主要就是先配置好调度中心的JDBC的连接信息。

配置完成之后,尝试启动:调度中心(XxlJobAdminApplication)默认端口:8080,前缀是/xxl-job-admin

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

4.调度中心访问地址:http://localhost:8080/xxl-job-admin

初始账号密码:admin/123456

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

到此调度中心配置完成。

4.配置执行器项目

以xxl-job提供的整合springboot项目为例

步骤一:maven依赖

确认pom文件中引入了 “xxl-job-core” 的maven依赖;version可写具体的版本号

<dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>${project.parent.version}</version>
        </dependency>
步骤二:执行器配置

 springboot配置文件: /xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

执行器配置,配置内容说明:

## 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.appname=xxl-job-executor-sample
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
xxl.job.executor.address=
### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
xxl.job.executor.ip=
### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999
### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
xxl.job.executor.logretentiondays=30
步骤三:执行器组件配置

   执行器组件位置: /xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java

配置内容说明:组件配置类直接可用,需要和上面执行器配置文件application.properties中的配置路径需要保持一致

package com.xxl.job.executor.core.config;

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

    @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() {
        logger.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;
    }

    /**
     * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
     *
     *      1、引入依赖:
     *          <dependency>
     *             <groupId>org.springframework.cloud</groupId>
     *             <artifactId>spring-cloud-commons</artifactId>
     *             <version>${version}</version>
     *         </dependency>
     *
     *      2、配置文件,或者容器启动变量
     *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
     *
     *      3、获取IP
     *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
     */


}
步骤四:启动执行器项目

举例:用xxl-job提供的先测试,启动:XxlJobExecutorApplication

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

四、开发第一个xxl-job任务

以xxl-job提供的springboot示例代码为例。

步骤一:新建执行器

这两个地方需要保持一致,不然自动注册的时候找到不到OnLine机器地址
错误信息是:RROR c.x.job.core.util.XxlJobRemotingUtil - Connection refused: connect

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

步骤二: 新建任务
1.运行模式BEAN

客户端:

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

2.代码端:

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job 2.运行模式(GLUE)

 ( “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

这个就可以直接在xxl-job编写代码实现定时任务。

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

步骤三:手动执行

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

步骤四、查看日志

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job 请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job 到此xxl-job提供给我们的代码结束。

五、整合spring boot项目

步骤一:引入依赖xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

步骤二:执行器配置

配置我们自己springboot项目的 配置文件 application.xxxx

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

步骤三:执行器组件配置

可以将将示例的 XxlJobConfig copy到我们的项目中

@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;
    }
}

 步骤四:编写自己的调度任务

@Component
public class SampleXxlJob {

    @XxlJob(value = "test")
    public void myJob() {
        String jobParam = XxlJobHelper.getJobParam();
        System.out.println("myJob,任务调用成功,耶耶耶耶耶"+jobParam);
        XxlJobHelper.handleSuccess("调度任务成功");
    }
}

启动我们自己的springboot项目 。

  步骤五:客户端新建执行器

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

   步骤六:客户端新建任务

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

  步骤七:定时执行(一分钟一次)

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

  步骤七:查看日志

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

XXL-Job的搭建&接入Springboot项目(详细),spring boot,后端,java,xxl-job

看日志输出,说明在自己的springboot项目中 xxl-job任务接入成功,之后就可以按需定义定时任务。xxl-job目前还有很多功能都还未演示,大家有需要可去xxl-job官网文档了解更多信息。文章来源地址https://www.toymoban.com/news/detail-800522.html

到了这里,关于XXL-Job的搭建&接入Springboot项目(详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用React给XXL-JOB开发一个新皮肤(一):环境搭建和项目初始化

    一. 简述 二. Fork 项目 三. 搭建开发环境 四. 初始化皮肤项目 五. 添加相关依赖 六. 预览 大名鼎鼎的 xxl-job 任务调度中心我们应该都使用过,项目地址:xxl-job。它是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 该项目中的页面是使用

    2024年02月01日
    浏览(34)
  • Xxl-job安装部署以及SpringBoot集成Xxl-job使用

    1、安装Xxl-job: 可以使用docker拉取镜像部署和源码编译两种方式,这里选择源码编译安装。 代码拉取地址: 官方开发文档: 2、打开项目 使用Maven打开项目,下载相关的jar包依赖。配置相关配置文件 这里可以参考官方开发文档进行配置。 3、初始化数据库 项目中包含数据库

    2023年04月25日
    浏览(44)
  • 【xxl-job】分布式任务调度系统xxl-job搭建

    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展、开箱即用。 更多介绍,请访问官网:分布式任务调度平台XXL-JOB 前提条件:任务调度中心(xxl-job admin)依赖于 mysql,所以必须要安装mysql才行!安装mysql有2种方式:docker部署或

    2024年02月16日
    浏览(50)
  • xxl-job定时任务配置应用以及添加到自己已有的springboot项目中实现动态API调用

    XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 本篇文章主要是对xuxueli的xxl-job做一个简单的配置,以及将其添加到自己已有的项目中进行api调用。 一、xxl-job安装 1、首先

    2024年02月03日
    浏览(40)
  • XXL-JOB详细说明

    单机:Timer、ExectorService、spring@scheduled 分布式:xxl-job、quartz、elastic-job 由调度中心和执行器组成,调度中心提供一个web管理配置任务和执行器,调度中心通过rpc触发执行器 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改任务状

    2024年02月10日
    浏览(69)
  • xxl-job 集成 SpringBoot 使用

      如果您觉得有用的话,记得给 博主点个赞,评论,收藏一键三连啊 ,写作不易啊^ _ ^。   而且听说 点赞的人每天的运气都不会太差 ,实在白嫖的话,那欢迎常来啊!!! xxl-job 集成 SpringBoot 使用 1. xxl-job 安装部署超链接 xxl-job 7.32版本 安装部署 2. 启动xxl-job 3. 集成 Sprin

    2024年02月04日
    浏览(31)
  • Spring Boot 整合 xxl-job

    官方文档:https://www.xuxueli.com/xxl-job/ XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 说明:官方文档很重要,而且非常详细,要慢慢适应看官方文档进行学习! PS:下面搭

    2023年04月13日
    浏览(36)
  • Spring Boot整合 xxl-job

    目录 1. 介绍 2. SpringBoot整合xxl-job 2.1. 配置数据库 2.2. 运行调动中心 2.3. 整合业务服务 2.3.1. 引入maven依赖 2.3.2. 创建业务服务配置类 2.3.3. 创建定时任务 xxl-job是一个分布式定时器任务派遣服务,这个项目主要有以下三部分组成 :  xxl-job-admin: 调动中心,主要是提供任务管理

    2024年02月13日
    浏览(42)
  • XXL-Job快速入门+详细教程

    XXL-JOB是一个轻量级分布式任务调度平台 详细说明:XXL-JOB是一个任务调度框架,通过引入XXL-JOB相关的依赖,按照相关格式撰写代码后,可在其可视化界面进行任务的启动,执行,中止以及包含了日志记录与查询和任务状态监控 如果将XXL-JOB形容为一个人的话,每一个引入xxl

    2024年02月09日
    浏览(28)
  • Docker-compose搭建xxl-job(并配置Python3环境xxl-job执行器)

    注意:a.文件内IP替换成自己本机IP; b.数据库连接、用户密码根据自己情况修改; 注意:根据自己Python脚本需要添加python3第三方包; 注意:xxl-job-executor-sample-springboot-2.2.0.jar 为xxl-job的执行器jar包 可从github上拉取源码打包成jar 这里提供该文件csdn下载地址:https://download.csdn.

    2024年02月14日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包