首页 > 其他分享 >SpringCloud-搭建XXL-JOB任务调度平台

SpringCloud-搭建XXL-JOB任务调度平台

时间:2024-09-02 19:58:44浏览次数:11  
标签:SpringCloud JOB job xxl 任务 任务调度 XXL

本教程提供了从XXL-JOB平台介绍到具体搭建流程的详细说明,旨在帮助开发者和系统管理员快速理解和部署XXL-JOB任务调度平台。通过Spring Cloud集成XXL-JOB任务调度平台,可以使微服务环境中的任务调度更加灵活和高效。整个过程中,调度中心和执行器的正确配置是关键。此外,通过XXL-JOB提供的控制台,用户可以轻松管理和监控任务的运行状态,实现任务的高效执行。


一、XXL-JOB任务调度平台介绍

XXL-JOB是一个轻量级分布式任务调度框架,旨在解决分布式系统中的任务调度问题,提高系统的处理效率和任务管理的便捷性。

1. XXL-JOB任务调度概念

XXL-JOB任务调度平台通过中心化管理方式,使得任务的调度更加高效和集中。平台不仅提供了丰富的任务调度功能,例如:CRON表达式、任务依赖、失败重试、任务超时处理、任务分片等,还提供了实时的任务日志、运行结果监控等功能,大大简化了任务调度的复杂性。


2. XXL-JOB任务调度平台架构

XXL-JOB的基本架构主要包括以下几个组成部分:

  • 调度中心(Admin):负责任务的添加、编辑、删除以及触发任务执行。
  • 执行器(Executor):负责接受调度中心的命令,执行具体的任务逻辑。

SpringCloud-搭建XXL-JOB任务调度平台_spring cloud

在实际开发中,XXL-JOB的任务调度中心负责管理和分配任务,而各个服务或应用需要集成执行器以注册到XXL-JOB任务调度中心。执行器负责实际执行这些任务,并向调度中心报告执行结果。


3. XXL-JOB功能

XXL-JOB具有强大且实用的功能,具体如下:

功能

描述

任务调度

支持CRON表达式,动态设置执行频率

任务依赖

支持跨任务依赖,任务链的形式执行

失败处理

支持失败重试机制,自定义重试次数

超时处理

支持任务执行超时设置,超时后自动终止

日志监控

支持实时日志监控,查看任务执行详情

负载均衡

执行器支持集群部署,实现任务负载均衡


二、XXL-JOB搭建流程

搭建XXL-JOB平台涉及到多个步骤,包括环境准备、调度中心的部署、执行器的集成和配置等。

1、环境准备

  • Java环境:JDK1.8或更高版本。
  • 数据库:MySQL5.5及以上。
  • Maven:用于项目构建。
  • 可运行的SpringCloud项目。

2、调度中心部署

克隆 XXL-JOB 的代码仓库:

git clone https://github.com/xuxueli/xxl-job.git

SpringCloud-搭建XXL-JOB任务调度平台_spring_02

导入 doc/db/tables_xxl_job.sql 到 MySQL 数据库,创建所需的数据库和表。

SpringCloud-搭建XXL-JOB任务调度平台_Cloud_03

修改调度中心配置文件 application.properties,配置数据库信息。

spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=yourpassword

SpringCloud-搭建XXL-JOB任务调度平台_xxl-job_04

复制到 xxl-job 项目目录下。

SpringCloud-搭建XXL-JOB任务调度平台_xxl-job_05

IDEA内修改父级项目的 pom.xml 的模块引用,将 xxl-job 引入到项目里作为一个独立的模块。

SpringCloud-搭建XXL-JOB任务调度平台_Cloud_06

引入成功后,xxl-job 模块颜色变为黑色。

启动 xl-job-admin 项目。

SpringCloud-搭建XXL-JOB任务调度平台_spring_07

任务调度中心成功启动。

初始登录信息:admin/123456

SpringCloud-搭建XXL-JOB任务调度平台_xxl-job_08


3、执行器集成

在 SpringCloud 项目的 pom.xml 文件中添加 XXL-JOB 的依赖:

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

复制

这里 2.4.2 是我的 xxl-job 的版本号,不知道可以去下载的 xxl-job 包下的 pom.xml 看版本。

配置执行器:

在 application.properties 或 application.yml 中配置执行器信息:

xxl:
  job:
    admin:
      addresses: http://localhost:8080/xxl-job-admin
    executor:
      appname: xxl-job-executor-sample
      address:
      ip:
      port: 9999
      logpath: /data/applogs/xxl-job/jobhandler
      logretentiondays: 30

复制

创建任务执行类: 在 Spring Cloud 项目中创建一个任务类,使用 @XxlJob 注解标记任务执行方法:

import com.xxl.job.core.handler.annotation.XxlJob;
import org.springframework.stereotype.Component;

@Component
public class SampleXxlJob {
    @XxlJob("demoTaskHandler")
    public void demoTaskHandler() throws Exception {
        System.out.println("XXL-JOB, Hello World.");
    }
}

复制

启动Spring Cloud服务,执行器将自动注册到调度中心,并可以在 XXL-JOB 管理员界面添加和触发任务。


三、XXL-JOB平台的使用

1、管理任务调度

在任务管理页面,我们看到有哪些任务已经被注册,我们可以选择任务立即去执行,也可以查看任务的执行日志,XXL-JOB平台提供给我们非常多的便捷操作。

SpringCloud-搭建XXL-JOB任务调度平台_任务调度_09


2、创建定时任务

左侧菜单的 [任务管理] 里创建新任务。

SpringCloud-搭建XXL-JOB任务调度平台_任务调度_10

Cron 里选择触发周期,下方会显示最近运行时间,如图所示,我设定的是每月1号0点定时运行。

SpringCloud-搭建XXL-JOB任务调度平台_Cloud_11

主要就是填写 Cron(定时设置)和JobHandler(自动调用的接口)。

SpringCloud-搭建XXL-JOB任务调度平台_xxl-job_12


四、XXL-JOB任务调度平台搭建总结

通过Spring Cloud集成XXL-JOB任务调度平台,可以使微服务环境中的任务调度更加灵活和高效。整个过程中,调度中心和执行器的正确配置是关键。此外,通过XXL-JOB提供的控制台,用户可以轻松管理和监控任务的运行状态,实现任务的高效执行。

本教程提供了从平台介绍到具体搭建流程的详细说明,旨在帮助开发者和系统管理员快速理解和部署XXL-JOB任务调度平台。通过此平台的应用,大型分布式系统的任务管理将变得更为简单和高效。


标签:SpringCloud,JOB,job,xxl,任务,任务调度,XXL
From: https://blog.51cto.com/liuguangzhi/10640373

相关文章

  • SnailJob:分布式环境设计的任务调度与重试平台!【送源码】
    背景近日挖掘到一款名为“SnailJob”的分布式重试开源项目,它旨在解决微服务架构中常见的重试问题。在微服务大行其道的今天,我们经常需要对某个数据请求进行多次尝试。然而,当遇到网络不稳定、外部服务更新或下游服务负载过高等情况时,请求可能会失败。这时,重试机制就显得尤为重......
  • Apache DolphinScheduler大规模任务调度系统对大数据实时Flink任务支持
    转载自神龙大侠我是用olphinScheduler3.2.1版本做源代码编译部署(部署方式参考我的另外一篇文档《源代码编译,ApacheDolphinScheduler前后端分离部署解决方案》)二进制文件部署本文也适用,只需要修改相对应的配置即可。资源管理底层基座替换成hdfsFlink程序jar包是在资源中心进......
  • SpringCloud Gateway鉴权
    参考:https://blog.csdn.net/weixin_43296313/article/details/121126811基于从前的项目:https://www.cnblogs.com/xsj1989/p/18350213在网关项目下创建全局过滤器packagecom.xcg.filters;importcom.auth0.jwt.interfaces.Claim;importcom.auth0.jwt.interfaces.DecodedJWT;......
  • 探索Java中的分布式任务调度:从理论到实践
    引言在现代企业级应用中,定时任务调度是一项至关重要的功能。无论是数据备份、日志清理还是批处理任务,都离不开任务调度系统。随着系统的规模和复杂度的增加,传统的单机任务调度已经无法满足需求。因此,分布式任务调度应运而生。本篇博文将详细介绍Java中的分布式任务调度,从基本......
  • springcloud
    SpringCloudidea微服务项目导入,maven加载过慢方法1方法2简单理解就是将不同功能controller分为两个接口供外部使用......
  • 分布式计算架构详解以及任务调度方式
    信息技术领域重要分支—分布式计算。分布式计算通过将任务分配到多个物理的计算资源上进行处理,以来提高计算效率和资源利用率。今天主讲分布式计算架构的关键组成以及在云服务器背景下任务调度的不同方式,然后再综合来看这些调度策略是怎样适应云环境的动态性和可扩展性。以前的集中......
  • Java语言-SpringCloud架构-EMS能源管理系统(水-电-气-热-油等数据采集分析系统)
    Java语言-SpringCloud架构-EMS能源管理系统(水-电-气-热-油等数据采集分析系统)介绍适用于高能耗企业、建筑、工厂、园区的水、电、气、热、油、空压机等能源数据采集、分析、报表;基于SpringCloud的能源管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud......
  • 【SpringCloud】idea如何实现微服务多开
    背景:当需要使用相同的配置启动多个服务且host相同时,就需要在命令行指定不同的端口,但是springcloud中远程配置默认会覆盖所有本地参数,所以需要修改默认覆盖优先级一、默认优先级 二、配置远程配置优先级低于本地系统参数#是否允许本地配置覆盖远程配置spring.cloud.config......
  • 【java计算机毕设】网上商城MySQL springcloud vue HTML maven项目设计源码带项目报告
    目录1项目功能2项目介绍3项目地址 1项目功能【java计算机毕设】网上商城MySQLspringcloudvueHTMLmaven项目设计源码带项目报告PPT前后端可分离也可不分离 2项目介绍系统功能:网上商城包括管理员、用户两种角色。管理员功能包括个人中心模块用于修改个人......
  • springcloud断路器作用?
    在SpringCloud中,断路器(CircuitBreaker)是一个用于处理微服务架构中服务调用失败的模式,它可以提高系统的稳定性和容错能力。断路器模式的核心思想是防止在某个服务出现故障时,故障会传递到整个系统,从而避免大规模的服务崩溃。断路器的工作原理断路器模式模拟了电路断路器......