xxl-job分布式定时任务,springboot集成xxl-job。

一、xxl-job简介

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

二、xxl-job使用

1.前往 Gitee 地址进行下载:
xxl-job: 一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
注:本文是2.3.0版本 

xxl-job分布式定时任务,springboot集成xxl-job。_第1张图片 

2.拉取代码后,项目结构如下:

xxl-job分布式定时任务,springboot集成xxl-job。_第2张图片 

 

3. 在自己本地mysql运行项目中的sql文件:

xxl-job分布式定时任务,springboot集成xxl-job。_第3张图片

xxl-job分布式定时任务,springboot集成xxl-job。_第4张图片

xxl-job分布式定时任务,springboot集成xxl-job。_第5张图片 

4.修改拉取下来的项目中application.properties的数据源连接信息:

xxl-job分布式定时任务,springboot集成xxl-job。_第6张图片 

 5.admin模块中启动项目:

xxl-job分布式定时任务,springboot集成xxl-job。_第7张图片

6.项目启动成功后在浏览器输入网址:

浏览器默认访问地址:http://localhost:8080/xxl-job-admin
默认账号:admin
默认密码:123456

 

7.登陆成功

xxl-job分布式定时任务,springboot集成xxl-job。_第8张图片

 登陆成功后我们就可以去完成我们springboot整合xxl-job了

三、springboot集成xxl-job

1.新建项目 并引入Maven依赖

        
            com.xuxueli
            xxl-job-core
            2.3.0
        

2.创建XxlJobConfig配置类

package com.kn.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依赖配置
 */
@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;
    }
}

3.yml配置文件添加xxl-job配置

xxl:
  job:
    admin:
    # 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。
      addresses: http://127.0.0.1:8080/xxl-job-admin  
    # 执行器通讯TOKEN [选填]:非空时启用
    accessToken: ""
    executor:
      # 执行器的应用名称
      appname: xxl-job-test
      # 执行器注册 [选填]:优先使用该配置作为注册地址
      address: ""
      # 执行器IP [选填]:默认为空表示自动获取IP
      ip: ""
      # 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999
      port: 9999
      # 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
      logpath: /data/applogs/xxl-job/jobhandler
      # 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
      logretentiondays: -1
  • 注:如果将配置在ncaos中进行配置,需将xxl.job.accessToken等默认为空的配置赋予空字符串"",否则会报Could not resolve placeholder ‘xxl.job.accessToken’ in value “${xxl.job.accessToken}”错误(在本地配置文件中配置则不需要)

 

4.编写测试类

import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * xxl-job测试类
 */
@Component
public class XxlJobTest {

    @XxlJob("testXxlJob")
    public void testJobHandler() throws InterruptedException {
            System.out.println("ok");
            System.out.println("hello");

    }
}

5.启动服务

先启动之前拉取的xxl-job-admin模块,再启动自己的springBoot服务(因为xxl-job-admin模块的端口为8080,所以需修改本地的端口,否则会报错)

6.任务调度中心,配置服务 

1.新增执行器

xxl-job分布式定时任务,springboot集成xxl-job。_第9张图片 

 2.新增任务

xxl-job分布式定时任务,springboot集成xxl-job。_第10张图片 

 xxl-job分布式定时任务,springboot集成xxl-job。_第11张图片

 

7.执行任务(本地测试点击执行一次即可,如项目运行,点击启动)

xxl-job分布式定时任务,springboot集成xxl-job。_第12张图片

 xxl-job分布式定时任务,springboot集成xxl-job。_第13张图片

8.上面的方法是手动执行一次,如果想 一直运行 操作里面点击启动即可。

至此,springboot简单集成xxl-job已完成。

你可能感兴趣的:(xxl-job,springCloud,分布式)