当前位置: 首页 > news >正文

SpringBoot整合xxl-job详细教程

SrpingBoot整合xxl-job,实现任务调度

  • 说明
  • 调度中心
  • 执行器
  • 调试
  • 整合SpringBoot

说明

  1. Xxl-Job是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
  2. Xxl-Job有两个核心,一个调度中心,一个执行器,需要同时部署才行。

调度中心

1、进入官网地址gitee,复制连接拉取程序。

在这里插入图片描述

2、IDEA工具导入项目,setttings配置可用maven

在这里插入图片描述

3、项目结构的doc/db/tables_xxl_job.sql文件,运行到MySql,创建数据库和表。

4、修改xxl-job-admin调度中心里面配置文件。这里不是邮箱的登录密码,是邮箱的授权码,首页>>设置>>账号下申请,spring.mail.password = POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务授权码
在这里插入图片描述
在这里插入图片描述

5、启动xxl-job-admin项目,访问http://localhost:8080/xxl-job-admin,用户名:admin,密码:123456,调度中心部署完成。

在这里插入图片描述

执行器

1、创建测试类 Test.java,启动项目

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;import java.util.Date;@Component
public class Test {private static Logger logger = LoggerFactory.getLogger(Test.class);/*** 1、简单任务示例(Bean模式)*/@XxlJob("testJobHandler")public ReturnT<String> demoJobHandler(String param) throws Exception {System.out.println(new Date() + "Test Xxl-Job~");return ReturnT.SUCCESS;}
}

在这里插入图片描述
2、配置说明

# 服务端口
server.port=8081# 日志配置
logging.config=classpath:logback.xml# 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。
# 执行器将会使用该地址进行"执行器心跳注册""任务结果回调"
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin# xxl-job授权,需与调度中心一致,默认default_token
xxl.job.accessToken=default_token# xxl-job注册到调度中心名称
xxl.job.executor.appname=xxl-job-executor-sample# 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。
# 从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。
xxl.job.executor.address=# 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;
# 地址信息用于 "执行器注册""调度中心请求并触发任务";
xxl.job.executor.ip=# 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
xxl.job.executor.port=9999
# xxl-job 日志文件路径
xxl.job.executor.logpath=D:/xxlJob
### xxl-job 日志保存日期
xxl.job.executor.logretentiondays=30

调试

一、自动注册上执行器信息。

在这里插入图片描述

二、任务管理新增任务、保存。

在这里插入图片描述

三、控制台看代码语句输出,任务调度成功。如果无打印,检查报错或者邮箱推送信息排查。

在这里插入图片描述

整合SpringBoot

1、maven项目pom.xml添加

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

2、拷贝XxlJobConfig到新建项目使用


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 config**/
@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;@Beanpublic 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、主要学习@XxlJob()注解的使用即可

到此结束,感谢浏览到最后,有问题可用留言交流!

http://www.lryc.cn/news/58917.html

相关文章:

  • 【MySQL--04】数据类型
  • git 将其它分支的文件检出到工作区
  • 人工智能的最大危险是什么?
  • rk3568点亮E-ink
  • 如何将Springboot项目通过IDEA打包成jar包,并且转换成可执行文件
  • 总结:网卡
  • Java这么卷,还有前景吗?
  • 后端简易定时任务框架选择(Python/Go)--gocron
  • 【GStreamer学习】之GStreamer基础教程
  • 各类Round-Robin总结,含Verilog实现
  • 《软件设计师-知识点》
  • mysql 同义词_数据库中的同义词synonym
  • Nacos共享配置
  • 数据结构——排序(4)
  • C++13:搜索二叉树
  • 【从零开始学Skynet】基础篇(五):简易聊天室
  • HDU - 2089 不要62(数位DP)
  • 网络安全与防御
  • 【DT】蒸脱机的结构和工作原理
  • Docker管理软件
  • 关于运行时内存数据区的一些扩展概念
  • 计算机组成原理第二章数据的表示与运算(中)
  • 我的第一台电脑的故事
  • 【1041. 困于环中的机器人】
  • 几何算法——4.交线(intersection curve)的表达与参数化、微分性质
  • 【GPT】让你事半功倍特别好用的5个GPT工具
  • 人工智能大模型多场景应用原理解析
  • SpringBoot默认包扫描机制与默认配置文件
  • RabbitMq 消息可靠性问题(一) --- publisher发送时丢失
  • Java初识泛型