首页 > 其他分享 >SpringBoot项目集成XXL-job

SpringBoot项目集成XXL-job

时间:2024-03-23 09:00:43浏览次数:239  
标签:SpringBoot private job Value xxlJobSpringExecutor XXL xxl

文章目录



在这里插入图片描述

在集成 XXL-job 前,首先确保部署了 XXL-job 的 admin 服务, 如果还没有部署的话请参照 Docker安装部署XXL-Job 将 XXL-job 部署起来.

此时, XXL-job 已经部署好了, 下来一步一步的来集成 XXL-job.


首先引入依赖

<!-- xxl-job-core -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>${project.parent.version}</version>
</dependency>

配置信息

# xxl-job
xxl:
  job:
    admin:
      addresses: http://xxml-job admin服务IP:服务端口/xxl-job-admin/ # 任务中心地址 
    accessToken:
    executor:
      appname: my-job # 任务名称 见名之意且唯一
      address:
      ip:
      port: 19999 #指定任务工程与admin工程心跳检测端口 注意该端口不是你的服务的端口,是特别指定的端口
      logpath: ./logs/xxl-job/stock-job/ # 日志文件路径
      logretentiondays: 30  # 日志文件保存天数

在这里插入图片描述

配置类

配置完毕后,工程底层通过 XxlJobConfig 配置类加载配置信息,实现 xxljob 相关资源的初始化工作:

加入如下配置类:

@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;
    
    /** Spring整合XXL-JOB任务执行器
    * 该执行器可调度当前工程下的一些子任务
    */
    @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;
    }
}

定义定时任务执行方法

@Slf4j
@Component
public class SampleXxlJob {

    /**
     * 1、简单任务示例(Bean模式)
     */
    @XxlJob("demoJobHandler")
    public void demoJobHandler() throws Exception {
        // 打印时间
        System.out.println("hello XXL-job....." + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
    }
}

配置任务执行器

在这里插入图片描述

注意 AppName 就是在配置文件中配置的.
ip是自己服务的ip,注意不是xxljob服务的ip. 端口是配置的心跳监听的端口.


配置任务执行计划

在这里插入图片描述

在这里插入图片描述

点击上面的操作开启任务

后端就会看到任务执行了:

在这里插入图片描述

至此, 你的SpringBoot项目就集成了XXL-job了.


在这里插入图片描述



标签:SpringBoot,private,job,Value,xxlJobSpringExecutor,XXL,xxl
From: https://blog.csdn.net/2301_78386975/article/details/136932639

相关文章

  • 基于SpringBoot的后勤管理系统【附源码】
    后勤管理系统开发说明开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9摘 要21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次......
  • Mall4j开源商城系统-基于SpringBoot+Vue系统开发介绍
     今天来介绍一款非常不错的Mall4j开源商城系统Mall4j开源商城,一个基于springboot、springoauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布式锁,为生产环境多实例完全准备,数据库为b2b2c设计,拥有完整sku和下单流程的开源商城。目录 今天来介绍一......
  • 记录一次SpringBoot + Vue前后分离项目的部署流程
    前言本教程使用黑马SpringBoot3+Vue3全套视频教程大事件项目作为前后端代码。前置需要:mysqljdkredisnginxlinux环境打包前端构建项目命令npmrunbuild会在项目根路径下生成dist文件夹,这里存放了我们打包好的前端代码。可以使用zip进行全部的压缩等下好上传到服......
  • Springboot的启动类名(引导类),一直爆红解决方式
    可以看到上图,无论起什么名称都爆红,也不能启动,原因是不能(引导类)启动类不能直接放java文件下,要放到你新建立的包下,它扫描的是包改放到com.itheima内,问题解决(小编范了两次这种低级错误)放到包内,最上面的packagecom.itheima;是扫描的包范围,切记不要大意......
  • Vue和SpringBoot实现的通用商城系统,高质量毕业论文范例,附送源码、数据库脚本,项目导入
    1.项目技术栈前端必学三个基础:“HTML、CSS、JS”,基本每个B/S架构项目都要用到,基础中的基础。此外项目页面使用Vue等前端框架技术。后端使用Java主流的框架 SpringBoot,使用MySQL数据库,是一个JavaWEB进阶学习的好资源。2.适合对象Java初学者、Java课题设计、Java毕业设......
  • 2023-6-20-springboot中使用es
    依赖、配置、定义索引对象、操作、其他依赖<!--Maven--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>配置spring:elasticsearch:......
  • 一、SpringBoot基础搭建
    本教程主要给初学SpringBoot的开发者,通过idea搭建单体服务提供手把手教学例程,主要目的在于理解环境的搭建,以及maven模块之间的整合与调用源码:jun/learn-springboot以商城项目为搭建例子,首先计划建1个父模块,3个子模块:父模块(你可以理解为共用模块,约定共用参数以及公用jar等)s......
  • SpringBoot3.x与SpringDoc OpenApi之Swagger接口排序
    直接使用Swagger之后,发现所有的Controller接口菜单都是无序的先看一下效果 就是利用了一下SpringDoc提供的接口做了一下自定义排序1.在Controller上加上注解@Tag(name="MenuController",description="1-菜单管理")这里需要注意description属性,在下面的代码里......
  • 基于springboot+vue的乡村民宿管理系统
    一、系统架构        前端:vue|element-ui        后端:springboot|mybatis-plus        环境:jdk1.8+|mysql|maven|nodejs二、代码及数据库        三、功能介绍   01.登录页  02.注册 03.管理员-首页 ......
  • SpringBoot实现单机锁和分布式锁
    1、使用Java的内置锁机制(单机锁)Java提供了synchronized关键字和java.util.concurrent.locks.Lock接口来实现锁。synchronized是Java语言内置的关键字,当它被用作修饰一个方法时,该方法在同一时间只能被一个线程访问。Lock接口提供了更灵活的锁机制,包括可重入锁、公平锁、非公......