• 任务调度xxljob的使用记录


    1.基本使用

    a.下载代码,地址:https://gitee.com/xuxueli0323/xxl-job.git
    在这里插入图片描述
    b.执行sql,修改配置,启动任务调度中心的代码
    在这里插入图片描述
    在这里插入图片描述
    启动代码后任务调度中心访问地址:http://localhost:8080/xxl-job-admin(自己机器的ip)
    默认账号密码:admin/123456
    在这里插入图片描述
    c.编写执行器注册到任务调度中心(参考上述示例)
    相关配置

    # 指定要连接的任务调度中心地址
    xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
    
    # 连接任务调度中心的token
    xxl.job.accessToken=default_token
    
    # 指定当前应用的名称
    xxl.job.executor.appname=zwb-test
    
    #  这个是ip和port的组合
    #xxl.job.executor.address=
    
    ### 指定到任务中心的ip
    xxl.job.executor.ip=127.0.0.1
    
    # 指定通信的端口
    xxl.job.executor.port=9999
    
    # 指定任务执行的日志
    xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
    
    # 日志保存时间
    xxl.job.executor.logretentiondays=30
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    编写一个配置类

    package com.example.demo.xxljob.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;
    
    // 将上述在配置文件中配置信息读取,注册一个XxlJobSpringExecutor对象
    @Configuration
    public class JobConfig {
    
        @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() {
            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、引入依赖:
         *          
         *             org.springframework.cloud
         *             spring-cloud-commons
         *             ${version}
         *         
         *
         *      2、配置文件,或者容器启动变量
         *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
         *
         *      3、获取IP
         *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
         */
    
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    注册一个定时任务

    @Component
    public class JobExample {
        @XxlJob("execute1")
        public void execute1() {
            System.out.println("用来测试xxl-job是否连通");
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    d.启动该代码后去任务调度中心配置相关数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    e.启动相关定时任务
    在这里插入图片描述
    在这里插入图片描述

    2.基于集群的使用

    a.搭建集群:基于上述的使用,赋值一份执行器代码,只需要更改xxl-job的通信端口即可完成集群的部署
    在这里插入图片描述
    在这里插入图片描述

    b.集群配置
    在这里插入图片描述
    在这里插入图片描述

    3.路由策略是分片广播的使用

    当我们的定时任务的任务量较大时,我们可以将任务进行切分,采用多台机器同时执行来帮助我们加快定时任务的执行。xxl-job分片广播模式下会让所有的定时任务同时执行,但是会提供一个叫分片总数的参数来告诉每一个执行者目前该定时任务有多少实例,然后我们人为的可以将任务进行划分来执行。

     @XxlJob("execute1")
     public void execute1() {
         // 分片总数 :总数为该任务的实例数
         XxlJobHelper.getShardTotal();
         System.out.println("用来测试xxl-job是否连通");
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Java IO---File类
    修改密码复杂度
    基于javaweb的个人投资理财系统(java+springboot+layui+html+mysql)
    ESP32网络开发实例-从SPIFFS加载Web页面文件
    codeforces (C++ Morning)
    Sentinel-2 命名规则(Naming Convention)
    oracle报错,XML节点值超过varchar(4000)截取方法。ORA-06502,ORA-06512,ORA-01706
    使用部分写时复制提升Lakehouse的 ACID Upserts性能
    HTML+CSS+JS网页设计期末课程大作业 html+css+javascript+jquery化妆品电商网站4页面
    潜在风险如何规避?可燃气体报警器定期校准是关键
  • 原文地址:https://blog.csdn.net/weixin_45660035/article/details/137885005