XXL-JOB 分布式定时任务调度平台

2023-11-11

文章目录

1、概述

​ 首先我们要知道什么是XXL-JOB?

​ 官方简介:XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用

​ XXL-JOB的有点特性:

​ 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;

​ 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
​ 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
​ 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
​ 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
​ 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
​ 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
​ 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
​ 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
​ 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
​ 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
​ 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
​ 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
​ 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
​ 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发

​ …

是目前主流的分布式任务调度平台,许多公司的产品业务都有XXL-JOB的接入

2、使用

首先从GitHub上面将项目clone下来,如果网络问题导致速度慢也可以从Gitee上面拉取

GitHub地址:https://github.com/xuxueli/xxl-job

Gitee地址:https://gitee.com/xuxueli0323/xxl-job

我从GitHub上面进行克隆
在这里插入图片描述
载好之后将压缩包解压,然后通过IDEA打开,将Maven编译好后项目结构如下
在这里插入图片描述
然后运行自带的tables_xxl_job.sql文件,在Navcation中去运行,生成需要的表
在这里插入图片描述
得到需要的基础表

在这里插入图片描述
打开xxl-job-admin模块,在application.properties中进行后台的配置

在这里插入图片描述
在这里插入图片描述
注意在数据库地址哪里加上时区属性,否则乱码

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8&serverTimezone=UTC

然后我们启动XxlJobAdminApplication类,访问http://localhost:8080/xxl-job-admin 默认账户admn,密码123456

在这里插入图片描述
进来就可以看到主界面了

在这里插入图片描述

定位到springboot模块下的jobhandler层下面

在这里插入图片描述

然后我们编写一个自己的定时任务来测试

package com.xxl.job.executor.service.jobhandler;

import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import org.springframework.stereotype.Component;

/**
 * @author fueen
 * 编写自己的定时任务Handler
 * 继承IJobHandler
 *
 */
@JobHandler(value = "MyJobHandler")
@Component
public class MyJobHandler extends IJobHandler {
    /**
     * 重写execute方法,里面执行相应的功能
     * @param param
     * @return
     * @throws Exception
     */
    @Override
    public ReturnT<String> execute(String param) throws Exception {
        System.out.println("我们不能失去信仰");
        return SUCCESS;
    }
}


在任务管理里面新增任务
在这里插入图片描述

在这里插入图片描述
然后在找到刚刚添加的任务,点击操作里面的启动

在这里插入图片描述
可以看到结果,刚刚编写的代码已经被执行了
在这里插入图片描述
关于XXL-JOB的基本使用就到这里了,如果在项目中去集成也很简单

在项目中引入依赖

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

将xxl-job-executor-sample-springboot这个模块下的XxlJobConfig复制一份到项目中,然后将相关配置设置好即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XXL-JOB 分布式定时任务调度平台 的相关文章

随机推荐

  • 关于String的hashcode,以及判断字符串是否相等的解析

    跟着老师的方法验证equals方法的重写 由于误写发现运行结果和预想的不一样 先上代码 package com wuyw oo import java util Objects author wuyw2020 date 2019 10 28
  • 关于Linux下操作(写)excel文件

    网上有很多第三方库可以非常方便的读写excel文件在此不再列举 如果应用场景只是将数据记录成excel格式 只写不读 一种不利用第三方库的做法是 1 正常创建一个文件 后缀为excel格式之一即可 2 sprintf格式化字符串生成列头 比
  • 40张最全计算机网络基础思维导图

    hi 大家好 今天的网络基础思维导图主要是二 三层网络协议 再配合之前的文章 四层以上互联网核心协议 TCP IP协议精华指南pdf发布 非常适合对网络感兴趣的同学 同时也让大家对整个网络架构有一个整体的认识 希望大家喜欢 传输介质简介 以
  • 几种网络通信协议

    应用层 HTTP Hypertext Transfer Protocol 超文本传输协议 显示网页 DNS Domain Name System 域名系统 FTP File Transfer Protocol 文件传出协议 SFTP SSH
  • BAPI_GOODSMVT_CREATE物料凭证创建…

    BAPI GOODSMVT CREATE可以实现物料凭证创建和部分冲销 全部冲销可以使用BAPI GOODSMVT CANCEL CALL FUNCTION BAPI GOODSMVT CREATE EXPORTING GOODSMVT H
  • Caffe中Solver解析

    1 Solver的初始化 shared ptr
  • QT中默认不选中Shadow build设置方法

    在使用qt开发的时候 每次创建工程 都会默认选中shadow build影子构建 作用是把编译生成的文件与源文件放在不同的目录 这样源码目录就相对整洁 但是这也会带来个问题 感觉超级鸡肋 就是经常修改了代码之后点运行 跑的还是修改之前的程序
  • 使用VMware Workstation Player虚拟机安装Linux系统

    下载安装 VMware Workstation Player 首先下载并安装 VMware Workstation Player VMware Workstation是一款非常强大的虚拟机软件 有pro专业版和player免费版 我们个人使
  • Java线程协作的两种方式

    介绍 Java中线程协作的最常见的两种方式 利用Object wait Object notify 和使用Condition 方法一 Object中的wait notify notifyAll方法定义如下 public final nati
  • 基于域名的恶意网站检测

    基于域名的恶意网站检测 0x00 数据来源 0x01 基于网页内容的判别方法 0x02 基于域名数据的判别方法 0x03 参考文献 0x00 数据来源 根据老师给的 300w 域名列表爬到的相应 DNS 响应数据 0x01 基于网页内容的判
  • 【翻译】 2.6 中的 4K 堆栈 [发布于 2004 年 5 月 12 日,作者:corbet

    传统上 Linux 内核在大多数架构上都使用 8KB 内核堆栈 该堆栈必须满足系统调用可能产生的任何调用序列 以及可能同时调用的任何 硬或软 中断处理程序的需要 实际上 在稳定的内核中 堆栈溢出的情况几乎闻所未闻 内核开发人员早已学会避免使
  • 【Docker教程(一)】WSL2、Docker以及docker-compose安装及环境配置

    一 如何安装WSL2 二 如何安装和配置docker 三 如何安装docker compose 四 如何基于ip代理池获取代理ip 注意 先安装WSL2 再安装docker和docker compose 参考资料 软件下载及安装教程 a d
  • JavaScript循环语句和分支语句

    JavaScript中的分支语句 1 if分支语句 2 if else语句 3 if else if else语句 4 switch语句 注 if语句可以单独存在 else语句不能单独存在 else找离自己最近的同一级别的if搭配成对 在i
  • linux创建711文件,linux权限---【600,644,700,755,711,666,777】,644711

    linux权限 600 644 700 755 711 666 777 644711 chmod命令详解 使用权限 所有使用者 使用方式 chmod cfvR help version mode file 说明 Linux Unix 的档案
  • 用streamlit,几行代码就可以拥有漂亮图表!

    大家注意 因为微信最近又改了推送机制 经常有小伙伴说错过了之前被删的文章 比如前阵子冒着风险写的爬虫 再比如一些限时福利 错过了就是错过了 所以建议大家加个星标 就能第一时间收到推送 大家好 我是爱搞事情的了不起 之前我们爬过懂车帝的车型评
  • c语言报告 列主元lu分解,求助:求个R语言的选主元LU分解。

    推荐答案 上善若水666 来自团队 乐于助人2018 04 21 采纳率 57 等级 50 已帮助 96万人 可以 这是数值分析书上的定理 就是存在排列矩阵P 对换矩阵的乘积 使得PA LU 这个定理说明先对A进行对换矩阵的行得到PA 然后
  • 【面试题】1、总结面试题1

    1 Java语言有哪些特点 1 面向对象 Java是一种面向对象的语言 支持封装 继承和多态等面向对象的特性 Java特别强调类和对象的关系 要求所有代码都必须位于类中 和Java一样很流行的Python也是面向对象的语言 但它对面向对象的
  • PVE虚拟化平台之安装Ubuntu Desktop系统

    PVE虚拟化平台之安装Ubuntu Desktop系统 一 Ubuntu介绍 1 1 Ubuntu简介 1 2 Ubuntu版本 1 3 ubuntu命名规则 二 上传镜像到PVE 2 1 检查PVE环境 2 2 上传镜像到PVE 三 新建
  • ARM软件测试库STL( Software Test libraries )介绍

    原文链接 https www arm com zh TW products development tools embedded and software software test libraries Faster Safety Comp
  • XXL-JOB 分布式定时任务调度平台

    文章目录 1 概述 2 使用 1 概述 首先我们要知道什么是XXL JOB 官方简介 XXL JOB是一个分布式任务调度平台 其核心设计目标是开发迅速 学习简单 轻量级 易扩展 现已开放源代码并接入多家公司线上产品线 开箱即用 XXL JO