前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringCloud-搭建XXL-JOB任务调度平台

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

作者头像
Damon小智
修改2024-04-30 19:13:57
1750
修改2024-04-30 19:13:57
举报
文章被收录于专栏:全栈文档库全栈文档库

本教程提供了从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):负责接受调度中心的命令,执行具体的任务逻辑。
001 1024x434 - SpringCloud-搭建XXL-JOB任务调度平台
001 1024x434 - SpringCloud-搭建XXL-JOB任务调度平台

在实际开发中,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 的代码仓库:

代码语言:javascript
复制
git clone https://github.com/xuxueli/xxl-job.git
04Y0@109@W5EFX6VTQ3X 1024x671 - SpringCloud-搭建XXL-JOB任务调度平台
04Y0@109@W5EFX6VTQ3X 1024x671 - SpringCloud-搭建XXL-JOB任务调度平台

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

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

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

代码语言:javascript
复制
spring.datasource.url=jdbc:mysql://localhost:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=yourpassword
004 3 1024x632 - SpringCloud-搭建XXL-JOB任务调度平台
004 3 1024x632 - SpringCloud-搭建XXL-JOB任务调度平台

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

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

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

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

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

启动 xl-job-admin 项目。

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

任务调度中心成功启动。

初始登录信息:admin/123456

008 1 1024x521 - SpringCloud-搭建XXL-JOB任务调度平台
008 1 1024x521 - SpringCloud-搭建XXL-JOB任务调度平台

3、执行器集成

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

代码语言:javascript
复制
<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 中配置执行器信息:

代码语言:javascript
复制
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 注解标记任务执行方法:

代码语言:javascript
复制
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平台提供给我们非常多的便捷操作。

009 1 1024x604 - SpringCloud-搭建XXL-JOB任务调度平台
009 1 1024x604 - SpringCloud-搭建XXL-JOB任务调度平台

2、创建定时任务

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

010 1 1024x678 - SpringCloud-搭建XXL-JOB任务调度平台
010 1 1024x678 - SpringCloud-搭建XXL-JOB任务调度平台

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

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

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

012 1 1024x795 - SpringCloud-搭建XXL-JOB任务调度平台
012 1 1024x795 - SpringCloud-搭建XXL-JOB任务调度平台

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-4-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、XXL-JOB任务调度平台介绍
    • 1. XXL-JOB任务调度概念
      • 2. XXL-JOB任务调度平台架构
        • 3. XXL-JOB功能
        • 二、XXL-JOB搭建流程
          • 1、环境准备
            • 2、调度中心部署
              • 3、执行器集成
              • 三、XXL-JOB平台的使用
                • 1、管理任务调度
                  • 2、创建定时任务
                  • 四、XXL-JOB任务调度平台搭建总结
                  相关产品与服务
                  负载均衡
                  负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档