springboot整合xxl-job的示例代码

目录
  • 关于xxl-job
    • 调度中心
    • 执行器

关于xxl-job

在我看来,总体可以分为三大块:

  1. 调度中心
  2. 执行器
  3. 配置定时任务

调度中心

简单来讲就是 xxl-job-admin那个模块,配置:

  • 从doc里面取出xxl-job.sql的脚本文件,创建对应的数据库。
  • 进行配置文件的配置,如下图

进行日志存放位置的修改

  • 然后idea打包之后就能当作调度中心运行了
  • 访问地址:ip:port/xxl-job-admin 默认的账号密码:admin/123456 注意:你进去后修改密码,有些浏览器就算你账号密码对了,可能还是会显示密码错误,默认使用谷歌浏览器。

执行器

就是我们使用springboot整合xxl-job需要编写的代码。 配置过程:

1.引入核心依赖,这里使用的是2.2.0

<!-- xxl-job -->
<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-job-core</artifactId>
    <version>2.2.0</version>
</dependency>

注意:这里的版本与你xxl-job-admin的版本保持一致。

2.配置文件

xxl:
  job:
    admin:
      addresses: http://127.0.0.1:8106/xxl-job-admin
    executor:
      appname: testJob #xxljob配置的执行器名称,
      ip:             #执行器IP,默认为空表示自动获取IP
      port: 9988 #xxljob配置的端口号,默认为9999
      logpath: ./data/xxl-job/jobhandler  #执行器运行日志文件存储磁盘路径
      logretentiondays: -1  #调度中心日志表数据保存天数,过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能
    accessToken: #调度中心通讯TOKEN [选填]:非空时启用

这里ip的获取,为空可以自动获取,你也可以在调度中心管理页面进行手动配置。

如果需要使用accessToken,那么就需要在xxl-job-admin的配置文件里进行配置对应。

3.编写配置类

import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
​
/**
 * @DESC xxl-job配置类
 * @AUTHOR lh
 * @DATE 2022/6/23 11:41
 */
​
@Configuration
@Slf4j
public class XxlJobConfig {
​
    @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() {
        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;
    }
}

这里需要注意,高版本与低版本的配置类略有不同。

4.编写测试类

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
​
/**
 * @DESC 测试定时任务代码
 * @AUTHOR lh
 * @DATE 2022/6/23 11:52
 */
@Slf4j
@Component
public class TestJob {
​
    @XxlJob("xxlJobTest")
    public ReturnT<String> xxlJobTest(String date) {
        log.info("---------xxlJobTest定时任务执行成功--------");
        return ReturnT.SUCCESS;
    }
}

注意:2.2.0版本,已经不支持@JobHandler注解了。 这里的XxlJob与调度中心的定时任务配置相对应。

到此这篇关于springboot整合xxl-job的示例代码的文章就介绍到这了,更多相关springboot整合xxl-job内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot整合Xxl-job实现定时任务的全过程

    目录 前言 一.部署调度中心 1.项目下载 2.初始化数据 3.修改properties配置文件 二.部署SpringBoot项目 1.引入依赖 2.创建配置类 3.修改配置文件 4.创建执行器 5.启动SpringBoot项目 三.通过调度中心进行任务调度 1.添加执行器 2.添加任务 3.任务调度中心发起任务调度 四.小结 总结 前言 ​ XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. 如果是单机

  • SpringBoot整合Xxl-Job的完整步骤记录

    一.下载Xxl-Job源代码并导入本地并运行 Github地址: https://github.com/xuxueli/xxl-job 中文文档地址: https://www.xuxueli.com/xxl-job/ 1.使用Idea或Eclipse导入 2.执行sql脚本(红色标记处) 3.运行xxl-job-admin(xxl-job后台管理,主要方便管理各种各样的任务) 注意:在运行之前,需要把2的sql脚本执行完毕,并修改数据库连接池. 正常启动,访问地址为:http://localho

  • 分布式调度XXL-Job整合Springboot2.X实战操作

    一.定时任务的使用场景和常见的定时任务 二.如何选择哪一个分布式任务调度平台 三.xxl-job的设计思想 ​ 四.XXL-Job具有哪些特性 五.XXL-Job实战操作 一.定时任务的使用场景和常见的定时任务 某个时间定时处理某个任务.发邮件.短信.消息提醒.订单通知.统计报表等 定时任务划分  单机定时任务:    单机的容易实现,但应用于集群环境做分布式部署,就会带来重复执行    解决方案有很多比如加锁.数据库等,但是增加了很多非业务逻辑 分布式调度:      把需要处理的计划任务放入

  • Redis和springboot 整合redisUtil类的示例代码

    一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 二.在application.yml 配置redis服务器 spring: # 环境 dev|test|prod profiles: active: dev servle

  • SpringBoot整合Redis管道的示例代码

    目录 1. Redis 之管道(pipeline) 2. SpringBoot 整合 Redis 管道实例 1. Redis 之管道(pipeline) 执行一个Redis命令,Redis客户端和Redis服务器就需要执行以下步骤: 客户端发送命令到服务器: 服务器接受命令请求,执行命令,产生相应的结果: 服务器返回结果给客户端: 客户端接受命令的执行结果,并向用户展示. Redis命令所消耗的大部分时间都用在了发送命令请求和接收命令结果上面,把任意多条Redis命令请求打包在一起,然后一次性地

  • springboot整合mongodb changestream的示例代码

    目录 前言 ChangeStream介绍 环境准备 Java客户端操作changestream 1.引入maven依赖 2.测试类核心代码 下面来看看具体的整合步骤 1.引入核心依赖 2.核心配置文件 3.编写实体类,映射comment集合中的字段 4.编写一个服务类 5.编写一个接口 6.接下来,只需要依次添加下面3个配置类即可 典型应用场景 数据迁移 应用监控 对接大数据应用 前言 changestream是monggodb的3.6版本之后出现的一种基于collection(数据库集合)的变

  • Springboot整合mqtt服务的示例代码

    首先在pom文件里引入mqtt的依赖配置 <!--mqtt--> <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.4</version> </dependency> 其次在springboot 的配置yml文件,配

  • springboot整合kaptcha验证码的示例代码

    前言: 关于kaptcha简介以及spring整合kaptcha,我在另一篇文章中已详细讲解,请参考:spring整合kaptcha验证码. 本文将介绍springboot整合kaptcha的两种方式. 开发工具及技术: 1.idea 2017 2.springboot 2.0.2 3.kaptcha 正式开始: 方式一:通过kaptcha.xml配置 1.用idea新建一个spring Initializr 2.添加kaptcha的依赖: <!-- kaptcha验证码 --> <de

  • SpringBoot整合minio快速入门教程(代码示例)

    分享一个快速使用springboot整合minio实现文件上传和下载的示例.前提是已经安装并运行minio服务,参考 minio快速入门文档 首先添加Minio的依赖 <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>3.0.10</version> </dependency> 然后写一个contro

  • 利用Springboot实现Jwt认证的示例代码

    JSON Web Token是目前最流行的跨域认证解决方案,,适合前后端分离项目通过Restful API进行数据交互时进行身份认证 关于Shiro整合JWT,可以看这里:Springboot实现Shiro+JWT认证 概述 由于概念性内容网上多的是,所以就不详细介绍了 具体可以看这里:阮一峰大佬的博客 我总结几个重点: JWT,全称Json Web Token,是一种令牌认证的方式 长相: 头部:放有签名算法和令牌类型(这个就是JWT) 载荷:你在令牌上附带的信息:比如用户的id,用户的电话号

  • SpringBoot整合Hbase的实现示例

    简介 当单表数据量过大的时候,关系性数据库会出现性能瓶颈,这时候我们就可以用NoSql,比如Hbase就是一个不错的解决方案.接下来是用Spring整合Hbase的实际案例,且在最后会给出整合中可能会出现的问题,以及解决方案.这里我是用本地Windows的IDEA,与局域网的伪分布Hbase集群做的连接,其中Hbase集群包括的组件有:Jdk1.8.Hadoop2.7.6.ZooKeeper3.4.10.Hbase2.0.1,因为这里只是开发环境,所以做一个伪分布的就好,之后部署的时候再按生产环

  • SpringBoot整合Pulsar的实现示例

    目录 一.添加pom.xml依赖 二.Pulsar 参数类 三.Pulsar 配置类 四.不同消费数据类型的监听器 五.Pulsar的核心服务类 六.Pulsar整合Spring Cloud 一.添加pom.xml依赖 <parent>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-parent</artifactId>  

  • springboot前后台数据交互的示例代码

    本文介绍了springboot前后台数据交互的示例代码,分享给大家,具体如下: 1.在路径中传递数据,比如对某个数据的id:123 前台发送:格式大致如下 在路径中传数据 后台接收: 后台接收数据 后台接收结果 2.查询字符串传递数据前台发送:   前台使用Querystring发送数据 后台接收: 这里@RequestParm可以不写,在后台找不到前台对应的字段时,输出null,在@RequestParam中指定的话输出指定的值(前台没给出字段时): 后台接收queryString方式传递的数

随机推荐