目录

大橙子

VX:ZzzChChen
Phone:13403656751
Email:zxydczzs@gmail.com

X

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

一、下载源码

github地址:https://github.com/xuxueli/xxl-job/releases

gitee地址:http://gitee.com/xuxueli0323/xxl-job/releases

文档地址:https://www.xuxueli.com/xxl-job/

二、初始化“调度数据库”

image.png

image.png

三、运行xxl-job-admin

先修改properties文件中的数据库密码,改成自己的。

image.png

运行

image.png

image.png

四、打开管理后台

网址输入 http://localhost:8080/xxl-job-admin/

image.png

五、创建执行器

image.png

六、创建任务

image.png

七、项目中使用

  1. pom.xml 添加依赖

            <!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core -->
            <dependency>
                <groupId>com.xuxueli</groupId>
                <artifactId>xxl-job-core</artifactId>
                <version>2.3.0</version>
            </dependency>
    
  2. yml文件添加配置

    xxl:
      job:
        admin:
          addresses: http://127.0.0.1:8080/xxl-job-admin
        accessToken:
        executor:
          appname: study-executor
          address:
          ip: 127.0.0.1
          port: 9999
          logpath: E:/ws/xxl-job-2.3.0/data/applogs/xxl-job/jobhandler
          logretentiondays: 3000
    
  3. 创建配置文件

    package com.zxy.demo.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();
         */
    
    
    }
    
  4. 创建任务,注意:@XxlJob注解中的值需与自己创建的执行器名称一致

    package com.zxy.demo.job;
    
    import com.xxl.job.core.biz.model.ReturnT;
    import com.xxl.job.core.handler.annotation.XxlJob;
    import org.springframework.stereotype.Component;
    
    /**
     * @description: study
     * 模块名称:
     * 说明:
     * 作者(@author): zxy
     * 创建日期: 2022年3月2日16:52:16
     */
    
    @Component
    public class StudyTestJobHandler {
    
        @XxlJob("studyTestJobHandler")
        public ReturnT<String> shardingJobHandler() {
    
            System.out.println("定时任务执行。。。。。");
            return ReturnT.SUCCESS;
        }
    }
    
    

八、启动要执行的项目

image.png

九、执行任务

image.png

十、结果

image.png


标题:分布式任务调度平台XXL-JOB
作者:zzzzchen
地址:https://www.dczzs.com/articles/2022/03/02/1646213068627.html