栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot集成xxl-job

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot集成xxl-job

springboot集成xxl-job

gitee:xxl-job官方下载地址

1.认识xxl-job相关模块

2.在数据库执行sql


执行成功,显示如下

3.将数据库信息配置在xxl-job服务端

4.运行xxl-job-admin服务器(也可以打包放到服务器上面执行)


执行成功,即可访问:任务调度中心

默认用户:admin

默认密码:123456

5.创建使用xxl-job的项目 1.目录结构

2.相关依赖


    4.0.0

    com.qq
    xxl-job-demo
    1.0-SNAPSHOT

    
        spring-boot-starter-parent
        org.springframework.boot
        2.4.5
    

    
        1.9.6
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            com.github.xiaoymin
            knife4j-spring-boot-starter
            ${knife4j.version}
        
        
        
            com.xuxueli
            xxl-job-core
            2.1.2
        
    


3.yaml配置文件
server:
  port: 8888

### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl:
  job:
    executor:
      ### xxl-job executor address
      appname: xxl-job-demo
      ip: ''
      port: 9999
      ### xxl-job log retention days
      logretentiondays: 30
      ### xxl-job log path
      logpath: /data/applogs/xxl-job/jobhandler
    ### xxl-job, access token
    accessToken: ''
    admin:
      addresses: http://localhost:8080/xxl-job-admin

# log
#logging:
#  config: classpath:logback.xml
4.启动类
package com.qq;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class XxlJobDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(XxlJobDemoApplication.class , args);
    }

}
5.xxl-job配置类
package com.qq.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;


@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;

    @Value("${xxl.job.executor.appname}")
    private String appName;

    @Value("${xxl.job.executor.ip}")
    private String ip;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.accessToken}")
    private String accessToken;

    @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.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobSpringExecutor;
    }

    
    
}
6.任务调度类
package com.qq.handler;

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;


@Component
public class SampleXxlJob {
    private static Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);
    
    @XxlJob("demoJobHandler")
    public ReturnT demoJobHandler(String param) throws Exception {

        logger.info("测试任务1被触发了");
//        XxlJobLogger.log("测试任务1被触发了");
        return ReturnT.SUCCESS;
    }

    @XxlJob("helloJob")
    public ReturnT helloJobHandler(String param) throws Exception {
        System.out.println("定时任务helloJob被执行了-----------");
        return ReturnT.SUCCESS;
    }

}
7.启动任务类(按照配置类参数,添加执行器)

8.创建任务

9.执行任务

10.查看调度记录

6.可能存在的问题

1.执行器自动获取的ip可能不对,如果出现这种错误,需要手动更改
2.任务调度类,类名必须是SampleXxlJob,否则可能无法正常进行任务调度
3.如果不是在同一台服务器,同一个系统上,可能是存在时间差导致

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750306.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号