SpringBoot整合XXL-JOB【01】- 初识XXL-JOB

简介: XXL-JOB 是一个分布式任务调度平台,设计目标为开发迅速、学习简单、轻量级、易扩展。它解决了分布式环境下定时任务重复执行的问题,无需额外加锁,降低了维护成本。XXL-JOB 由调度中心和执行器两部分组成,前者管理任务,后者执行具体逻辑,使代码结构更清晰。适用于多机部署场景,支持统一管理任务的启停和频率调整。

一、什么是XXL-JOB?

先来看看官方文档的定义:

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

先来理解一下任务调度:就是在一个约定的特定时刻去执行任务的过程。举一个常见的场景:银行需要在每个用户的信用卡还款日前3天发送短信通知。而任务调度平台则可以让我们对这些任务进行统一的管理,比如开启或关闭特定的任务、修改任务的执行频率等等。

二、为什么使用它?

有的同学可能要说了,不就是定时任务嘛,我一个Java Boy当然要用Spring,直接用Spring提供的 @Scheduled注解,一行代码不就搞定了。确实,Spring提供了非常便利的方式让我们在项目中使用定时任务,但如果你不是单机部署的话,定时任务肯定会重复执行的,而我相信大部分公司的业务应该不会只部署一台机器吧,如图:
1.png
那有的同学要说了,这也很简单嘛,加个分布式锁控制下就好了,但加锁就意味着我们在编码阶段多了一项维护成本嘛。可能有的同学又要说了,那没事,我们可以用Quartz。首先我认为它是一款优秀的框架,但我个人不是很喜欢的点就是使用API的方式控制任务以及需要持久化业务QuartzJobBean到底层数据表从而产生入侵,所以选择了XXL-JOB

三、架构

这里我们先看一下XXL-JOB官方文档的架构图,如下:
02.png
乍一看好像还挺复杂,但我们只需要知道它由调度中心执行器两部分组成。调度中心负责管理所有的任务,比如某个任务的执行频率,我们可以在调度中心里建个任务指定每天执行一次;接着在我们的项目里声明一个执行器,并把刚才的任务名称设置给它,这个执行器就是一个注解,所以把需要定时执行的逻辑抽成一个方法然后加上这个注解就行。

这样我们的代码结构就变得更清晰了,业务逻辑是业务逻辑,定时逻辑是定时逻辑。

四、小结

本篇文章只是先给各位读者大致介绍一下XXL-JOB,下一篇将会给大家演示怎么使用它。另外,其实它的文档也很详细,实在等不及的读者也可以读文档来自己试下,地址:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B

目录
相关文章
SpringBoot整合XXL-JOB【03】- 执行器的使用
本文介绍了如何将调度中心与项目结合,通过配置“执行器”实现定时任务控制。首先新建SpringBoot项目并引入依赖,接着配置xxl-job相关参数,如调度中心地址、执行器名称等。然后通过Java代码将执行器注册为Spring Bean,并声明测试方法使用`@XxlJob`注解。最后,在调度中心配置并启动定时任务,验证任务是否按预期执行。通过这些步骤,读者可以掌握Xxl-Job的基本使用,专注于业务逻辑的编写而无需关心定时器本身的实现。
22 10
SpringBoot整合XXL-JOB【03】-  执行器的使用
SpringBoot整合XXL-JOB【05】- 任务分片
在实际业务中,批量定时任务可能因执行时间过长影响业务。本文介绍如何使用Xxl-job对批量任务进行分片处理,通过分片广播形式调度集群机器并行执行,显著缩短任务耗时。具体步骤包括环境准备、不使用分片的代码示例、使用分片的改造方法及测试结果,展示了分片处理带来的性能提升。
26 13
SpringBoot整合XXL-JOB【04】- 以GLUE模式运行与执行器负载均衡策略
在本节中,我们将介绍XXL-JOB的GLUE模式和集群模式下的路由策略。GLUE模式允许直接在线上改造方法为定时任务,无需重新部署。通过一个测试方法,展示了如何在调度中心配置并使用GLUE模式执行定时任务。接着,我们探讨了多实例环境下的负载均衡策略,确保任务不会重复执行,并可通过修改路由策略(如轮训)实现任务在多个实例间的均衡分配。最后,总结了GLUE模式和负载均衡策略的应用,帮助读者更深入理解XXL-JOB的使用。
22 9
SpringBoot整合XXL-JOB【02】- 启动调度中心
本文介绍了如何初始化和配置XXL-JOB调度中心。首先,从GitHub或Gitee获取源码;接着,执行`tables_xxl_job.sql`脚本初始化数据库。然后,在IDE中打开项目并修改`application.properties`中的数据库连接和`accessToken`配置。完成配置后,启动`XxlJobAdminApplication`,访问http://localhost:8080/xxl-job-admin/进行登录。最后,简要介绍了调度中心的主要功能模块,包括运行报表、任务管理、调度日志、执行器管理和用户管理。下篇将通过实例演示如何使用XXL-JOB执行定时任务。
18 6
SpringBoot项目集成XXL-job
SpringBoot项目集成XXL-job
102 1
Spring Boot 整合xxl-job实现分布式定时任务
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 xxl是xxl-job的开发者大众点评的许雪里名称的拼音开头。
【极光系列】springBoot集成xxl-job调度器
【极光系列】springBoot集成xxl-job调度器
94 2
Spring Boot和XXL-Job:高效定时任务管理
Spring Boot和XXL-Job:高效定时任务管理
540 0
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
Docker【应用 01】Spring Boot 项目部署在Linux环境下的Docker容器内举例(任务调度系统 xxl-job 任务调度中心)(手动版)
Docker【应用 01】Spring Boot 项目部署在Linux环境下的Docker容器内举例(任务调度系统 xxl-job 任务调度中心)(手动版)
153 0