springboot集成xxl-job

gitee:xxl-job官方下载地址
验证demo:黔程似景xxl-job验证demo

1.认识xxl-job相关模块

2.在数据库执行sql


执行成功,显示如下

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

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


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

默认用户:admin

默认密码:123456

5.创建使用xxl-job的项目

1.目录结构

2.相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.qq</groupId><artifactId>xxl-job-demo</artifactId><version>1.0-SNAPSHOT</version><parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.4.5</version></parent><properties><knife4j.version>1.9.6</knife4j.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--swagger测试接口文档--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>${knife4j.version}</version></dependency><!-- xxl-job-core --><dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>2.1.2</version></dependency></dependencies></project>

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 addressappname: xxl-job-demoip: ''port: 9999### xxl-job log retention dayslogretentiondays: 30### xxl-job log pathlogpath: /data/applogs/xxl-job/jobhandler### xxl-job, access tokenaccessToken: ''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;/*** @author 黔程似景* @description TODO* @date 2022/2/26 21:56**/
@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;/*** xxl-job config** @author xuxueli 2017-04-28*/
@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;@Beanpublic 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;}/*** 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;**      1、引入依赖:*          <dependency>*             <groupId>org.springframework.cloud</groupId>*             <artifactId>spring-cloud-commons</artifactId>*             <version>${version}</version>*         </dependency>**      2、配置文件,或者容器启动变量*          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'**      3、获取IP*          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();*/}

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;/*** XxlJob开发示例(Bean模式)** 开发步骤:* 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"* 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。* 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;** @author xuxueli 2019-12-11 21:52:51*/
@Component
@EnableScheduling
public class TaskDemo{private static final Logger logger = LoggerFactory.getLogger(TaskDemo.class);/*** 1、简单任务示例(Bean模式)*/@XxlJob("demoJobHandler")public ReturnT<String> demoJobHandler(String param) throws Exception {logger.info("测试任务1被触发了");
//        XxlJobLogger.log("测试任务1被触发了");return ReturnT.SUCCESS;}@XxlJob("helloJob")public ReturnT<String> helloJobHandler(String param) throws Exception {System.out.println("定时任务helloJob被执行了-----------");return ReturnT.SUCCESS;}}

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

8.创建任务

9.执行任务

10.查看调度记录

6.可能存在的问题

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

springboot集成xxl-job相关推荐

  1. springboot 集成xxl-job 定时任务管理平台

    项目集成xxl-job https://github.com/nlxs0511/springmybatisplus.git 项目集成邮件      https://github.com/nlxs051 ...

  2. SpringBoot集成XxlJob分布式任务调度中心(超详细之手把手教学)

    一.前言 废话就不多说了,介绍Xxl-Job的网上已经有很多,本文就不多加复制粘贴了,直接步入第二步.(PS:本文包括Xxl-Job分布式定时任务调度中心的搭建,以及SpringBoot集成XxlJo ...

  3. Windows下安装Mongodb SpringBoot集成MongoDB和Redis多数据源

    全文内容: Mongodb安装 说明:Mongodb和redis是开发中常用的中间件,Redis的安装使用比较简单就不写了,只说本地也就是Windows安装Mongodb. SpringBoot集成M ...

  4. SpringBoot集成FreeMarker

    给大家简单介绍一下springboot 集成FreeMarker 过程很简单,5分钟即可. 首先在项目中增添依赖spring-boot-starter-freemarker pom文件代码如下: &l ...

  5. springboot集成swagger2测试接口

    springboot集成swagger2测试接口 1.需要的依赖 2.开始编写一个swagger2 3.演示效果图片 1.需要的依赖 <dependency><groupId> ...

  6. springboot 集成logback

    springboot 集成logback 1.application.properties配置文件指定logback.xml logging.config=classpath:logback.xml ...

  7. springboot集成swagger2多模块中文配置详细步骤,解决集成mybatis或mybatis-plus无法正常使用问题

    springboot集成swagger2多模块中文配置详细步骤,解决集成mybatis或mybatis-plus无法正常使用问题 参考文章: (1)springboot集成swagger2多模块中文配 ...

  8. SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null)

    SpringBoot集成Quartz(解决@Autowired空指针Null问题即依赖注入的属性为null) 参考文章: (1)SpringBoot集成Quartz(解决@Autowired空指针Nu ...

  9. SpringBoot集成全局异常处理

    2019独角兽企业重金招聘Python工程师标准>>> SpringBoot集成全局异常处理 前言 对于通常的MVC项目,大量的异常需要我们去处理,如此一来,我们的 Controll ...

  10. dubbo web工程示例_dubbo实战之二:与SpringBoot集成

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类和汇总,及配套源码,涉及Java.Docker.Kubernetes.DevO ...

最新文章

  1. 面试高频——JUC并发工具包快速上手(超详细总结)
  2. 基于wincc的虚拟电梯设计_基于WINCC的模拟电梯设计
  3. hook修改信息_React系列二十一 Hook(二)高级使用
  4. MetaQ Log4j及服务器配置管理
  5. 源码注释TODO/ FIXME/XXX,
  6. 1092 最好吃的月饼 (20分)_24行代码AC
  7. [ js ] 可否用多线程的思路,解决大数量数据的性能问题?
  8. Android开发:5-2、ListView、GridView、Spinner
  9. spring boot中使用ehcache
  10. Django中的form模块的高级处理
  11. 经典特别好用的局域网传输文件聊天工具飞秋和飞鸽传书
  12. DHT爬虫和使用BEP协议完成metadata的下载(BT下载)
  13. 简单几步即可速查电脑WiFi密码,无需任何工具!
  14. best time to cooldown
  15. Dev-C++下面的编译状态栏信息不显示
  16. 【深入设计模式】装饰模式—什么是装饰模式?装饰模式在源码中的应用
  17. 迅睿CMS 程序安装教程
  18. AD18无法仿真问题的解决
  19. 离线数据系统之MapReduce加强
  20. 燃臂孝母——本焕法师为母送终的孝行(转)

热门文章

  1. Android生物识别
  2. my-mind在线思维导图软件
  3. 正睿OI补题(二分与分治)
  4. 亚马逊Alexa即将推出基于AI的耳语模式
  5. Hyperledger Fabric基础介绍
  6. arcgis 属性表 汇总_最常用的GIS数据汇总
  7. 服务器数据迁移:为知笔记私服数据迁移
  8. MATLAB-真彩色图像RGB直方图绘制
  9. 微信ANDROID版本解析包错误,终于弄明白为什么手机安装软件会出现“解析包出现问题”...
  10. CF1385 D. a-Good String (分治+递归)