XXL-Job:提升任务调度效率的开源利器

这篇具有很好参考价值的文章主要介绍了XXL-Job:提升任务调度效率的开源利器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 前言

XXL-Job是由知名技术公司XXL-Tech团队开发和维护的,经过多年的发展和应用实践,已在众多企业和项目中获得广泛认可。它的特性和功能旨在简化任务调度的管理和执行,提高开发效率。

在本文中,我们将探讨XXL-Job的关键特点,包括其分布式任务调度能力、任务监控和管理功能以及灵活的调度策略。我们将深入了解如何利用XXL-Job解放开发人员的任务调度烦恼,提高项目的整体效率和稳定性。

二. 下载与安装

今天会手把手地教你安装XXL-Job,步骤很详细哦。

2.1 安装环境

在安装XXL-Job之前,请大家提前配置好以下环境:

  • Maven3+

  • JDK1.8+

  • MySQL5.7+

2.2 下载

https://github.com/xuxueli/xxl-job/tags 选择2.4.1版本

2.3 解压

解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:

XXL-Job:提升任务调度效率的开源利器,Java,开源

xxl-job-admin这是调度管理中心,也是XXL-Job的核心管理组件,负责任务的调度和管理。它给我们提供了一个可视化的管理界面,通过Web界面和API接口,开发者可以方便地创建、编辑和监控任务。调度中心负责将任务分发给执行器节点,并接收执行器的执行结果和日志。

xxl-job-executor(xxl-job-executor-sample):这是官方给的执行器案例,我们可以参考案例将执行器移植到应用中。执行器是XXL-Job的任务执行节点,负责接收调度中心分发的任务,并按照设定的调度策略执行任务。每个执行器都可以独立运行,它通过与调度中心进行通信,获取待执行的任务,并将执行结果和日志返回给调度中心。执行器可以动态扩容和缩容,实现任务的高并发和负载均衡。

2.4 初始化调度数据库

请下载项目源码并解压,获取 “调度数据库初始化SQL脚本” 并执行即可。其中,调度数据库的初始化SQL脚本位置为: 

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

三. 配置并启动调度中心

调度中心全局管理执行器、job、job-handler、以及job运行状态,我们可以配置并启动调度中心,主要有以下几个步骤。

1.step1:修改配置文件

配置文件地址如下:

/xxl-job/xxl-job-admin/src/main/resources/application.properties
调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root_pwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

报警邮箱

spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

调度中心通讯TOKEN [选填]:非空时启用;

xxl.job.accessToken=

调度中心国际化配置 [必填]:

默认为 "zh_CN"/中文简体, 可选范围为 "zh_CN"/中文简体, "zh_TC"/中文繁体 and "en"/英文;

xxl.job.i18n=zh_CN

调度线程池最大线程配置【必填】

xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100

调度中心日志表数据保存天数 [必填]:

过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能;

xxl.job.logretentiondays=30

2.step2:启动

如果已经正确进行上述配置,可将项目编译打包部署。调度中心访问地址:http://localhost:8080/xxl-job-admin

默认登录账号 “admin/123456”, 登录后运行界面如下图所示。

XXL-Job:提升任务调度效率的开源利器,Java,开源

四. 配置并启动执行器

1.step1:pom依赖

确认pom文件中引入了 “xxl-job-core” 的maven依赖;

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

2.step2:执行器配置

配置文件位置:

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

调度中心部署根地址 [选填]:

如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;

xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin

执行器通讯TOKEN [选填]:非空时启用;

xxl.job.accessToken=

执行器AppName [选填]:

执行器心跳注册分组依据;为空则关闭自动注册

xxl.job.executor.appname=zhuximing

执行器注册 [选填]:

优先使用该配置作为注册地址,为空时使用内嵌服务 ”IP:PORT“ 作为注册地址。从而更灵活的支持容器类型执行器动态IP和动态映射端口问题。

xxl.job.executor.address=

执行器IP [选填]:

默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";

xxl.job.executor.ip=

执行器端口号 [选填]:

小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;

xxl.job.executor.port=9999

执行器运行日志文件存储磁盘路径 [选填] :

需要对该路径拥有读写权限;为空则使用默认路径;

xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler

执行器日志文件保存天数 [选填] :

过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;

xxl.job.executor.logretentiondays=30

3.step3:实例化执行器

package com.qf.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class XxlJobConfig {
    private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);

    @Value("${xxl.job.admin.addresses}")
    private String adminAddresses;
    
    @Value("${xxl.job.accessToken}")
    private String accessToken;

    @Value("${xxl.job.executor.appname}")
    private String appname;

    @Value("${xxl.job.executor.address}")
    private String address;

    @Value("${xxl.job.executor.ip}")
    private String ip;

    @Value("${xxl.job.executor.port}")
    private int port;

    @Value("${xxl.job.executor.logpath}")
    private String logPath;

    @Value("${xxl.job.executor.logretentiondays}")
    private int logRetentionDays;

    @Bean
    public XxlJobSpringExecutor xxlJobExecutor() {
        logger.info(">>>>>>>>>>> xxl-job config init.");
        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
        xxlJobSpringExecutor.setAppname(appname);
        xxlJobSpringExecutor.setAddress(address);
        xxlJobSpringExecutor.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }
}

4.step4:启动执行器并注册执行器

备注:如果你不能自动注册,可以选择手动注册,注册成功后在执行器管理中可以看到执行器信息。

XXL-Job:提升任务调度效率的开源利器,Java,开源

五. 开发job

1.step1:编写任务job-handler

在执行器项目中编写handler,如下代码:

@XxlJob("hello-job")
public void hello(){
    XxlJobHelper.log("hello  xxl");
}

2.step2:创建任务

在调度中心中创建job,如下图:

XXL-Job:提升任务调度效率的开源利器,Java,开源

3.step3:运行任务

XXL-Job:提升任务调度效率的开源利器,Java,开源

4.step4:查看任务日志

XXL-Job:提升任务调度效率的开源利器,Java,开源

六. 总结

XXL-Job 是一个功能强大且易于使用的分布式任务调度框架,为我们的企业和开发团队提供了许多价值。本文通过一个详细的案例带大家走进了xxl-job,如果你想知道xxl-job的更多高级用法,请大家持续关注小千。文章来源地址https://www.toymoban.com/news/detail-640441.html

到了这里,关于XXL-Job:提升任务调度效率的开源利器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • xxl-Job分布式任务调度 入门

    我们可以先思考一下业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨0:10结算前一天的财务数据,统计汇总。 12306会根据车次的不同,设置某

    2024年02月03日
    浏览(106)
  • SpringCloud-搭建XXL-JOB任务调度平台教程

    XXL-JOB是一个轻量级分布式任务调度框架,旨在解决分布式系统中的任务调度问题,提高系统的处理效率和任务管理的便捷性。 1. XXL-JOB任务调度概念 XXL-JOB任务调度平台通过中心化管理方式,使得任务的调度更加高效和集中。平台不仅提供了丰富的任务调度功能,例如:CRON表

    2024年04月28日
    浏览(42)
  • XXL-JOB 任务调度中心 后台反弹getshell

     访问漏洞场景,使用弱口令admin/123456,进入后台 在任务管理处新增 运行模式一定要选shell模式,其他的地方随便填   保存之后点击操作 选择GLUE IDE,我们可以通过DNSlog判断一下 然后我们保存,然后执行一次 刷新之后,出现下图情况,证明设备出网 DNSLog Platform   那我们就可

    2024年02月04日
    浏览(48)
  • Java -- XXL-JOB分布式任务调度平台

    XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用 xxl是xxl-job的开发者大众点评的【许雪里】名称的拼音开头 官网地址 分布式任务调度平台XXL-JOB 文档地址 中文文档 English Docu

    2024年02月11日
    浏览(48)
  • XXL-JOB 任务调度中心 后台任意命令执行漏洞

    在日常开发中,经常会用定时任务执行某些不紧急又非常重要的事情,例如批量结算,计算当日的订单量,当日的成本收入等。当存在大量定时任务的时候,任务的管理也会成为一个比较头痛的问题。xxl-job,就是一个比较成熟的分布式任务调度平台。XXL-JOB 任务调度中心系统

    2024年02月08日
    浏览(45)
  • 【分布式任务调度】(一)XXL-JOB调度中心集群部署配置

    XXL-JOB是一款轻量级的分布式任务调度中间件,默认支持6000个定时任务,如果生产环境的任务数量在这个范围内,可以选择使用 XXL-JOB。 XXL-JOB由Quartz这款老牌的任务调度中间件演化而来,相对来说,具备以下优势: 操作更简单,学习成本更低 使用异步化调度,性能更好 有配

    2024年02月16日
    浏览(47)
  • 【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目

                                    💧 分布式任务调度平台 X X L − J O B 急速入门:从零开始将 X X L − J O B 接入到自己的项目 color{#FF1493}{分布式任务调度平台 XXL-JOB 急速入门:从零开始将 XXL-JOB 接入到自己的项目} 分布式任务调度平台 XX L − J OB 急速入门:从零

    2024年02月14日
    浏览(47)
  • spring boot + xxl-job 分布式任务调度

    1、任务调度 1.1、什么是任务调度 我们可以先思考一下下面业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。 某财务系统需要在每天上午10点前结算前一天的账单数据,统计汇总。 某电商平台每天凌晨3点,要对订单中的无效订单进行

    2024年02月09日
    浏览(63)
  • XXL-JOB中间件【实现分布式任务调度】

    目录 1:XXL-JOB介绍 2:搭建XXL-JOB 2.1:调度中心 2.2:执行器 2.3:执行任务 3:分片广播 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 官网:https://www.xuxueli.com/xxl-

    2024年02月03日
    浏览(110)
  • 初识轻量级分布式任务调度平台 xxl-job

    大家好,这里是 Rocky 编程日记 ,喜欢后端架构及中间件源码,目前正在阅读 xxl-job 源码。同时也把自己学习该 xxl-job 笔记,代码分享出来,供大家学习交流,如若笔记中有不对的地方,那一定是当时我的理解还不够,希望你能及时提出。 如果对于该笔记存在很多疑惑,欢迎

    2024年02月10日
    浏览(334)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包