Spring Boot2.0之 整合XXL-Job

springboot2.0集成xxl-job 使用许雪里的xxl-job: xl-job项目地址: github https://github.com/xuxueli/xxl-job document http://www.xuxueli.com/xxl-job/ 1.下载pom <!-- xxl-job-core --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</art 阅读详情

Spring Boot2.0之 整合XXL-Job

参考git上面的 springboot demo

 

创建maven工程:

pom:

<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.toov5</groupId>
  <artifactId>springboot-xxl-job</artifactId>
  <version>0.0.1-SNAPSHOT</version>
   
  	<properties>
		<javax.servlet-api.version>3.0.1</javax.servlet-api.version>
		<jsp-api.version>2.2</jsp-api.version>

		<spring.version>4.3.14.RELEASE</spring.version>
		<jackson.version>2.9.4</jackson.version>
		<aspectjweaver.version>1.8.13</aspectjweaver.version>
		<slf4j-api.version>1.7.25</slf4j-api.version>
		<freemarker.version>2.3.23</freemarker.version>
		<junit.version>4.12</junit.version>

		<jetty-server.version>9.2.24.v20180105</jetty-server.version>
		<hessian.version>4.0.51</hessian.version>
		<httpclient.version>4.5.5</httpclient.version>
		
		<commons-exec.version>1.3</commons-exec.version>
		<commons-collections4.version>4.1</commons-collections4.version>
		<commons-lang3.version>3.7</commons-lang3.version>
		<commons-email.version>1.5</commons-email.version>

		<c3p0.version>0.9.5.2</c3p0.version>
		<mysql-connector-java.version>5.1.45</mysql-connector-java.version>
		<mybatis-spring.version>1.3.1</mybatis-spring.version>
		<mybatis.version>3.4.5</mybatis.version>

		<groovy-all.version>2.4.13</groovy-all.version>
		<quartz.version>2.3.0</quartz.version>

		<spring-boot.version>1.5.10.RELEASE</spring-boot.version>
	</properties> 
  <dependencyManagement>
		<dependencies>
			<dependency>
				<!-- Import dependency management from Spring Boot (依赖管理:继承一些默认的依赖,工程需要依赖的jar包的管理,申明其他dependency的时候就不需要version) -->
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-parent</artifactId>
				<version>${spring-boot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- jetty -->
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-server</artifactId>
				<version>${jetty-server.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-util</artifactId>
				<version>${jetty-server.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-http</artifactId>
				<version>${jetty-server.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-io</artifactId>
				<version>${jetty-server.version}</version>
			</dependency>

		</dependencies>
	</dependencyManagement>

	<dependencies>
		<!-- spring-boot-starter-web (spring-webmvc + tomcat) -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

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

	</dependencies>

	<build>
		<plugins>
			<!-- spring-boot-maven-plugin (提供了直接运行项目的插件:如果是通过parent方式继承spring-boot-starter-parent则不用此插件) -->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>${spring-boot.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>repackage</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
  
  
  
</project>

   controller

 

 

注:

### xxl-job admin address list, such as "http://address" or "http://address01,http://address02"
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

是调度中心的地址

 

 

 

 修改job名字:与注解一致

 

config  通过config这个类 读取properties中的信息 然后注入到spring boot 容器中

 

项目结构:

 

 

Icontroller (做spring boot测试用的)

 

package com.toov5.api.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {
   @RequestMapping("/index")
   public String index() {
       return "ok";
   }
}

config (读取 properties文件 并且注入到spring 容器中的)

package com.toov5.job.executor.core.config;

import com.xxl.job.core.executor.XxlJobExecutor;
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.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * xxl-job config
 *
 * @author xuxueli 2017-04-28
 */
@Configuration
@ComponentScan(basePackages = "com.xxl.job.executor.service.jobhandler")
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(initMethod = "start", destroyMethod = "destroy")
    public XxlJobExecutor xxlJobExecutor() {
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobExecutor xxlJobExecutor = new XxlJobExecutor();
        xxlJobExecutor.setAdminAddresses(adminAddresses);
        xxlJobExecutor.setAppName(appName);
        xxlJobExecutor.setIp(ip);
        xxlJobExecutor.setPort(port);
        xxlJobExecutor.setAccessToken(accessToken);
        xxlJobExecutor.setLogPath(logPath);
        xxlJobExecutor.setLogRetentionDays(logRetentionDays);

        return xxlJobExecutor;
    }

}

 

 Job

package com.toov5.TestJob;

import org.springframework.stereotype.Component;

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;


@JobHandler(value="myJob")
@Component
public class MyJob extends IJobHandler {
     @Override
    public ReturnT<String> execute(String param) throws Exception {
        System.out.println("XXL-Job传递的参数是:"+param);
        return SUCCESS;
    }
}

 

 logback:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">

    <contextName>logback</contextName>
    <property name="log.path" value="/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log"/>

    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
       <!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter" >
            <level>WARN</level>
        </filter>-->
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${log.path}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
            </pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </root>

    <!--<logger name="com.xxl.job.executor.service.info" level="WARN" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="file"/>
    </logger>-->

</configuration>

  

启动admin的server,然后启动job的spring boot

运行成功:

 

 

 相关配置 入config 、 logback application.properties 参考github上的demo 修改就可以了

Spring Boot 项目整合 XXL - Job 使用流程详解 在分布式系统中,任务调度是一个常见且重要的需求。XXL - Job 作为一款轻量级的分布式任务调度平台,具有简单易用、功能强大等特点。而 Spring Boot 则以其快速开发、便捷配置的优势受到广大开发者的喜爱。本文将详细介绍如何将 XXL - Job 整合到 Spring Boot 项目中,实现任务的调度管理。 阅读详情

相关推荐

springboot整合 xxl-job

如果启动失败,检查配置文件的值是否一致,如accessToken的值。

web13688565871的博客 3337

apache进程框架commons-exec,Java

来自 127.0.0.1 的回复: 字节=32 时间

Zhang Phil 1367

Spring Boot 整合 XXL-JOB:分布式任务调度

本文旨在为开发人员提供一份全面的Spring Boot与XXL-JOB整合指南,涵盖从基础概念到高级特性的所有内容。XXL-JOB的核心架构和工作原理Spring Boot项目中的整合步骤分布式环境下的任务调度策略实际生产环境中的最佳实践文章首先介绍XXL-JOB的基本概念,然后深入其架构设计,接着详细讲解Spring Boot整合过程,最后探讨高级特性和实际应用场景。XXL-JOB:一个轻量级分布式任务调度平台,其核心设计目标是开发简单、易扩展、功能丰富调度中心。

AI开发架构师 1073

xxlJob2.0版本研究

1 说明 描述本组件的设计意图,使用场景等。 对应的需求文档链接(如果有),对应的概要设计文档链接(如果有), 设计意图:XXL-JOB是一个轻量级分布式任务调度平台,主要用于项目中的定时任务设置,例如运力服务中定时同步车辆信息、同步司机信息。 项目中具体的使用场景:参考文档 20.xxl-job 2 组件设计 2.1 架构设计图 xxl-job2.0的架构图,包含的组件如图所示: XXL...

cxy_19891109的博客 2331

【Java实战】Spring Boot 整合xxl-job分布式定时任务实例

关于定时任务有多种实现方法,如JDK的Timer和TimerTaskQuartz异步任务调度框架Spring Task注解@Scheduled,前面我们讲了Quartz异步任务调度框架,但是还是感觉不太够简单、轻便,所以今天介绍现在用的比较多的分布式定时任务xxl-jobxxl-job是美团大佬许雪里开发出来的,官方文档👉xxl-job文档一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

~~~~~~~BUG FLY~~~~~~~~~ 4622

【Python】torch_npu

Ascend AI处理器核心计算范式与PyTorch的桥接艺术:深入探索torch_npu的基石要真正理解,我们必须首先超越其作为PyTorch后端库的表面认知,深入其所服务的硬件——华为昇腾(Ascend)AI处理器的核心计算范式。这不仅仅是关于如何在NPU上运行PyTorch模型,更是关于NPU如何设计其计算,以及如何巧妙地将这种硬件特性映射到PyTorch的抽象层之上。1. 昇腾AI处理器的达芬奇架构:极致算力的源泉昇腾AI处理器并非传统的CPU或GPU。它采用了华为独创的达芬奇(Da Vinci)架

宅男很神经 5372

SpringBoot集成系列--xxlJob

本文提供了搭建调度中心xxl-job-admin的步骤,包括下载项目、调整项目参数、执行初始化数据库SQL、启动项目和访问。同时,还介绍了在Spring Boot中集成xxl-job的步骤,包括添加依赖、配置执行器、创建执行器和开发任务。最后,介绍了两种任务开发方式,BEAN模式和GLUE模式,并进行了测试。

程序员Forlan的博客 7161

无人机芯片模块技术要点分析

恶劣环境下信号稳定性:无人机在恶劣环境下工作时,遥感系统采集的信号往往很不稳定,视频信号处理芯片需要具备强抗干扰能力,能辨别脉冲脉宽为50ns以上、幅度为0V~4.5V的输入信号。这种架构能兼顾强大的运算能力和灵活的接口控制。芯片小型化:麻省理工学院的研究人员已设计出仅20平方毫米的微型芯片,可处理无人机飞行所需的惯性数据和相机图像,为微型无人机的发展奠定了基础。光子集成芯片(PIC) :研究显示,与电子芯片相比,光子计算芯片在延迟、计算容量和能效上都有数量级的提升,有望解决当前无人机系统的计算瓶颈。

YUNZHUO666的博客 1404

springboot集成xxl-job

springboot集成xxl-job

weixin_46597615的博客 1057

Label Studio 图像分割自动标注接入教程:从模型预测到一键上传 Predictions

这篇文章详细介绍了如何使用Label Studio进行图像分割任务的自动标注流程。主要内容包括: 环境准备:安装Label Studio和模型推理依赖 项目配置:启动Label Studio服务,创建项目并配置BrushLabels标注界面 数据准备:导入待标注图片,获取API访问凭证 模型推理:运行训练好的分割模型生成预测mask 结果上传:将预测结果转换为Label Studio格式并通过API上传为Predictions 文章提供了完整的操作指南,包括: 详细的命令行参数说明 推荐的项目目录结构 标注

. 451

手把手教你用若依WMS搭建企业级仓库管理系统(Vue+Spring Boot实战)

本文提供了一份基于若依框架(RuoYi)快速搭建企业级仓库管理系统(WMS)的实战指南。详细介绍了从环境准备、项目初始化到核心功能模块(如入库流程、库存管理看板)深度定制的全过程,并涵盖Lodop打印集成、移动端PWA适配及生产环境Docker部署等高级主题,帮助开发者高效构建稳定可用的WMS系统。

weixin_29015899的博客 564

微服务: xxl-job的安装(docker),使用及springboot整合[完整版详解]

xxl-job的docker安装,分布式调度任务使用 xxl-job的springboot整合, xxl-job遇到的问题解决, xxl-job安装部署运行使用 详解

pingzhuyan的博客 1万+

NLP DAY1: 文本数据读取

txt 文本数据的读写CSV 及 Excel 文本数据的读写更多的 DataFrame 操作数据规模太大怎么办相信通过本次实验的学习,同学们可以游刃有余地面对各种数据文件了。在接下来的实验中,我们将开始真正地开启自然语言处理之旅,开始认识并熟悉一些常见的针对文本本身的预处理操作。

feifeikon的博客 1060

docker

全文目录, 一篇结束1.1 xxl-job的作用及优势 1.1.1 xxl-job作用 统一管理定时调度任务 相比于 springboot的@Scheduled , 这个表达式可以随意修改 也可以面对更加复杂的定时调度场景 如 集群 ,容错, 分片等等1.1.2 xxl-job优势 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手; 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效; 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件

m0_50837402的博客 561

HarmonyOS开发第一步:Dev Eco Studio4.0保姆级安装配置指南(含Node.js环境)

本文提供HarmonyOS开发环境搭建的保姆级教程,重点详解Dev Eco Studio 4.0的安装与配置,并攻克Node.js环境与Ohpm包管理器的关键设置难点。通过清晰的步骤指引,帮助开发者从零开始,高效完成开发环境部署,顺利迈出鸿蒙应用开发的第一步。

lake5的博客 569

[Adaptive Autosar]深入理解--Time Synchronization

目录 1.TS典型应用场景 2.CP和AP时间同步对比 3.时间同步基础知识 4.TBR部分参数说明 5. TS功能说明 5.1 基本说明 5.2 时间纠正计算说明 5.3 时间验证 Time Synchronization 时间同步,后面简称TS 1.TS典型应用场景 时间同步,典型应用就是在自动驾驶领域,自动驾驶领域涉及到各个传感器的数据采集,如IMU采集当前车身姿态和运动信息,毫米波雷达-超声波雷达-环视摄像头-前视摄像头...等等传感器捕获的数据,在算法中需要精确知道每个数.

AgingMoon的博客 3997

Springboot整合XXL-JOB分布式任务调度平台

1、pom引入resource、此处需要说明一下,本地xxljob调度平台版本是2.1.1,任务端也就是写业务服务端用的是2.0.1,目前最新版本是2.2.0,目前我只整合成功了2.0.1,官方文档也不知道是哪个朝代的。。。吐槽一下。网上的例子大多都是2.0.1版本暂且用吧。。。 <!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core --> <dependency>

hanjiaqian的博客 423

OpenClaw 源代码深度分析报告 &如何把企业自有的MCP server 工具集成到OpenClaw里? 怎样通过OpenAI 风格SDK 解析出来OpenClaw的全部的流式输出内容?

项目属性详情名称OpenClaw版本2026.3.2许可证MIT语言最低运行时包管理器pnpm主要仓库},// 注册工具// 工具实现},});// 注册命令" }),});},方面评价模块化设计⭐⭐⭐⭐⭐ 插件架构清晰,扩展性强协议设计⭐⭐⭐⭐⭐ WebSocket 协议完善,支持多种客户端多渠道支持⭐⭐⭐⭐⭐ 20+ 消息通道,覆盖主流平台安全机制⭐⭐⭐⭐ 配对认证、设备签名、权限控制完善本地优先⭐⭐⭐⭐⭐ 数据本地存储,用户完全控制项目属性详情名称OpenClaw版本。

AI天才研究院 938

SpringBoot整合XXL-JOB

一、pom.xml中引入依赖 <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.0.1</vers...

hxt的博客 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spring Boot整合 xxl-job

xxl-job是一个分布式定时器任务派遣服务,这个项目主要有以下三部分组成 :xxl-job-admin: 调动中心,主要是提供任务管理平台的页面,需要把该模块单独打包作为一个服务部署,定时器再执行时,是通过该服务去调用我们的业务服务完成任务执行。xxl-job-core: 公共依赖模块,在整合业务服务的时候,需要引入该依赖。xxl-job-executor-samples:官方提供的demo。

qq_49059667的博客 6662

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

XXL-JOB详解(整合springboot)保姆级教程

XXL-JOB详解(整合springboot)保姆级教程

gb4215287的博客 2万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

spring boot项目整合xxl-job

阅读文本大概需要3分钟。关于分布式任务调度平台XXL-JOB,作者许雪里在其发布的中文教程中已经介绍的很清楚了,这里就不做过多的介绍了。按照文档搭建xxl-job,做此记录。1、源码...

天行健,君子以自强不息;地势坤,君子以厚德载物。 3687

spring boot 接入xxl-job IJobHandler @JobHandler 分布式任务调度用法

步骤一下:jar 包 <!--任务调度--> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version&g...

JesseCary的博客 3万+
上一篇: XXL-Job高可用集群搭建
下一篇: Apollo和分布式配置
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值