java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot xxl-job定时任务

SpringBoot集成xxl-job实现超牛的定时任务的步骤详解

作者:掉头发的王富贵

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,现已开放源代码并接入多家公司线上产品线,开箱即用,本文给大家介绍了SpringBoot集成xxl-job实现超牛的定时任务,需要的朋友可以参考下

开始介绍xxl-job的使用前我们先认识一下它的作者:Xuxueli(许雪里 )

Xuxueli(许雪里 )是中国知名的开源社区贡献者和技术专家。他是XXL-Job的创始人和核心开发者,也是XXL-Job的主要维护者。他在分布式任务调度领域有着丰富的经验和深厚的技术功底。可以看到xxl-job是一个优秀的国产货!

其实市面上有很多类似的产品:

产品名称国产/国外开源/商业主要特点
XXL-Job国产开源简单易用、分布式支持、可视化监控、扩展性强、活跃的社区支持
Quartz国外开源灵活的调度配置、支持集群部署、可靠的任务调度、广泛应用
Airflow国外开源基于DAG的任务调度、可视化工作流编排、丰富的调度功能、社区活跃
Azkaban国外开源分布式任务调度、可视化工作流编排、易于使用、支持多种调度方式
TAC国产商业分布式任务调度、高可靠性、高性能、可视化监控、企业级支持
Elastic Job国产开源分布式任务调度、弹性扩展、高可靠性、支持多种任务类型、与Elasticsearch、Zookeeper等集成

包括之前博主讲的 Elastic Job

废话不多说,现在我们来开始把xxl-job集成到SpringBoot(SpringCloud)中。

第一步,下载官方的仓库

没错,你没看错,是把他的仓库克隆下来,和其他的框架不同(在项目中引入jar包即可)

git clone https://gitee.com/xuxueli0323/xxl-job.git

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

之后用idea打开是这样的

第二步,连接mysql

xxl-job存储的介质是mysql,所以我们需要执行一下sql文件来创建一个库。找到官方的sql文件

/xxl-job/doc/db/tables_xxl_job.sql

在我们本地的mysql直接执行,执行之后会得到一个名字叫xxl-job的库

这里一共八个表,他们的作用是:

第三步,连接本地的mysql库

配置文件的地址是

/xxl-job/xxl-job-admin/src/main/resources/application.properties

这里面我们直接填写本地的数据库信息。

第四步,启动xxl-job-admin项目

配置好本地的mysql环境之后,选择好项目的jdk

之后我们启动启动类

com.xxl.job.admin.XxlJobAdminApplication

控制台打印如下信息则说明我们启动完成了

访问xxl-job的控制台

http://localhost:8080/xxl-job-admin/toLogin 默认的用户密码是 admin、123456

第五步,启动执行器项目

执行器(Executor)是指用于执行具体任务的运行时组件。执行器负责接收任务调度中心分配的任务,并按照任务的配置进行执行。可以理解为xxl-job-admin项目是一个注册中心,而执行器项目就是我们的执行者,注册中心负责管理统筹我们具体的任务,而任务里面具体做了什么事情就是执行器项目里面的业务了。

直接使用官方的项目即可

官方的仓库里面也给了我们一个执行器示例项目,叫做xxl-job-executor-sample-springboot

我们也执行启动类即可,如下则启动成功

这个时候我们去访问我们的控制台页面即可看到我们的执行器项目已经成功注册进来了

更改注册中心(xxl-job-admin项目)地址

我们可以看到这里的配置文件可以直接更改注册中心的地址

xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties

第六步,执行定时任务

通过在任务执行类的方法上添加@XxlJob注解,可以将该方法标记为一个定时任务。注解中可以设置任务的名称、分组、CRON表达式等属性,以及任务的参数和路由策略等。

使用项目中的示例任务

com.xxl.job.executor.service.jobhandler.SampleXxlJob#demoJobHandler

使用控制台调用任务

之后可以看到代码里面对应的信息被打印到日志中(示例任务是这样的,实际根据你的业务写代码就可以了)

第七步,自定义xxl-job服务

xxl-job-admin(注册中心)

在实际的工作过程中,必不能直接这样使用,就拿我们公司来说,我们使用的是微服务的架构,我们会把xxl-job-admin项目封装成一个微服务(当然不注册到nacos中)。这里直接用Maven打包成一个jar包

会在和项目同级别的目录下出现一个jar包

即可通过java命令运行

xxl-job-executor(执行器)

之后我们使用具体服务的微服务里面的节点(业务包,例如用户中心)指定xxl-job-admin项目的地址里面去使用。如果使用自定义的执行器要保证引入以下jar包

		 <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>${project.parent.version}</version>
        </dependency>

就如示例项目中一样

直接运行执行器即可注入到xxl-job-admin(注册中心)里面去,最后我们在控制台统一管理我们的任务即可:

通过本文的介绍,我们了解了如何在Spring Boot项目中集成XXL-Job,实现超牛的定时任务。XXL-Job提供了强大的任务调度和管理功能,使得定时任务的开发和管理变得更加简单和高效。

集成XXL-Job,我们可以通过配置或注解的方式定义定时任务,并灵活地设置任务的调度规则和执行方式。无论是按照时间间隔还是时间点执行任务,XXL-Job都能满足我们的需求。同时,XXL-Job还提供了任务的监控和管理功能,让我们可以实时了解任务的执行情况和结果。

通过使用XXL-Job,我们可以轻松实现定时任务的自动化执行,提高系统的稳定性和可靠性。无论是在企业级应用中还是个人项目中,XXL-Job都能为我们带来便利和效益。

XXL-Job作为一款国产的优秀开源软件,提供了强大的任务调度和管理功能,完全能够媲美甚至超越国外同类产品。作为国产软件的使用者和推广者,我们应该积极拥抱国产软件,为其发展壮大贡献自己的力量。让我们携手努力,为国内软件行业的发展做出更大的贡献!

以上就是SpringBoot集成xxl-job实现超牛的定时任务的步骤详解的详细内容,更多关于SpringBoot xxl-job定时任务的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文