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

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

一、概述

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

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

本文只讲解了springboot怎么使用xxl-job,有其他疑问的话可以给我留言哦!

二、运行调度中心xxl-job-admin

  1. 从上面github上将xxl-job源码下载下来
  2. 创建数据库:xxl_job,并运行xxl-job-master\doc\db\tables_xxl_job.sql文件。
  3. 使用idea或Eclipse打开xxl-job-master,并配置xxl-job-admin resources\application.properties文件,将datasource数据源指向上面创建的数据库地址,和数据库的用户名密码。
  4. 运行xxl-job-admin XxlJobAdminApplication.java,然后再浏览器中输入下面地址即可看到xxl-job的管理界面,默认用户名:admin, 密码:123456

localhost:8080/xxl-job-admin

在这里插入图片描述

三、创建执行器和任务

  1. 在任务执行管理中点击 “新增” 按钮 添加加执行器:

  2. 机器地址中的127.0.0.1:9999,便是客户端的地址,通信端口使用9999,这里也可以配多个客户端以逗号隔开。s
    在这里插入图片描述

  3. 然后再任务管理中新增任务:
    其中执行器便是前面创建的,因为只有一台客户端路由策略选什么已经无所谓了,如果是集群可以选择轮询。Corn便是更具Corn表达式定义的任务执行模式,这个可以去下面网站生成:

https://cron.qqe2.com/

四、SpringBoot集成xxl-job

  1. pom

    	<dependency>
                <groupId>com.xuxueli</groupId>
                <artifactId>xxl-job-core</artifactId>
                <version>2.2.0</version>
            </dependency>
    
  2. application.yml

    xxl:
      job:
        admin:
          # 执行器注册地址
          addresses: http://127.0.0.1:8080/xxl-job-admin
    
        accessToken:
    
        executor:
          # 执行器AppName
          appname: testapp
          address:
          ip:
          # 执行器注册端口
          port: 9999
          # 执行器执行日志文件输出路径
          logpath: xxl-job/jobhandler
          # 日志保留天数
          logretentiondays: 30
    
  3. 配置类XxlJobConfig

    @Configuration
    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() {
            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;
        }
    }
    
  4. TestJobHandler处理任务类

    @Component
    public class TestJobHandler {
    
        @XxlJob("testjobhandler")
        public ReturnT<String> demoJobHandler(String param) throws Exception{
            System.out.println("收到通知:"+param);
            return ReturnT.SUCCESS;
        }
    }
    
  5. 启动xxl-job网页中的任务,并启动springboot项目,可以看到控制台已经开始运行job:
    在这里插入图片描述

当然也可以更改其他的Cron表达式看看效果,或开启多个客户端形成集群更改路由策略看下不同的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小毕超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值