XXL-JOB分布式任务调度快速入门

news2024/11/29 4:46:58

文章目录

  • 概念
  • 快速启动XXL-JOB调度
  • 初始化执行器项目
  • 配置执行器
  • 新增GLUE模式(Java)的任务
  • 新增BEAN模式(类形式)的任务
  • BEAN模式(方法形式)的任务
  • 参考来源

概念

XXL-JOB是一个开源的分布式任务调度平台,它是一个轻量级、易扩展的任务调度平台

快速启动XXL-JOB调度

  • 拉取XXL-JOB源码

    git clone https://gitee.com/xuxueli0323/xxl-job.git
    
  • 执行调度数据库SQL脚本
    IDEA打开调度项目,执行doc/db/tables_xxl_job.sql

  • 配置调度中心数据库连接地址
    在这里插入图片描述

  • 修改调度中心日志文件地址
    在这里插入图片描述

  • 启动并访问调度中心

    • 访问地址:http://localhost:8080/xxl-job-admin
    • 用户名:admin
    • 密码:123456
      在这里插入图片描述

初始化执行器项目

  • 初始化一个Spring Boot项目

我这里使用的 Spring Boot 版本是 2.3.6.release
在这里插入图片描述

  • 引入maven依赖
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--   XXL-JOB 公共依赖   -->
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.4.1</version>
        </dependency>
    </dependencies>
  • 配置 XXL-JOB
server.port=20200
spring.application.name=xxl-job-demo
### 调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
### 执行器通讯TOKEN [选填]:非空时启用;
xxl.job.accessToken=default_token
### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
xxl.job.executor.appname=my-xxl-job-executor
### 执行器注册 [选填]:优先使用该配置作为注册地址,为空时使用内嵌服务 ”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=D:\TestFiles\logs\xxl-job\jobhandler
### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
xxl.job.executor.logretentiondays=30
  • 创建XXL-JOB配置类
@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.setIp(ip);
        xxlJobSpringExecutor.setPort(port);
        xxlJobSpringExecutor.setAccessToken(accessToken);
        xxlJobSpringExecutor.setLogPath(logPath);
        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
        return xxlJobSpringExecutor;
    }
}

  • 启动项目

配置执行器

在这里插入图片描述

新增GLUE模式(Java)的任务

GLUE模式(Java)运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,它只需要在调度中心控制台创建,无需我们手动编写任务代码

  • 创建GLUE模式(Java)的任务
    在这里插入图片描述
    在这里插入图片描述

  • 手动执行任务
    在这里插入图片描述
    在这里插入图片描述

  • 查看执行结果
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

实际上,当我们创建了一个GLUE模式(Java)的任务后,调度中心会帮我们自动生成任务代码,代码可以在GLUE IDE查看
在这里插入图片描述
在这里插入图片描述

新增BEAN模式(类形式)的任务

创建BEAN模式(类形式)的任务需要我们在执行器项目中自行编写任务代码

  • 创建一个Job类
public class MyXxlJob extends IJobHandler {
    @Override
    public void execute() throws Exception {
        XxlJobHelper.log("hello class xxl-job");
    }
}
  • 在XXL-JOB配置类中将Job注入到执行器容器
    @PostConstruct
    public void registerJob() {
        XxlJobExecutor.registJobHandler("MyXxlJob", new MyXxlJob());
    }
  • 创建BEAN模式(类形式)的任务
    在这里插入图片描述
  • 执行任务并查看执行结果
    与前面GLUE模式(Java)任务的操作类似

BEAN模式(方法形式)的任务

在BEAN模式(类形式)下,每个类代表一个任务,而在BEAN模式(方法形式)下,每个方法代表一个任务,只需要在方法上用@XxlJob注解标识即可

  • 创建一个Job类并编写一个Job方法
@Component
public class MyMethodXxlJob {
    @XxlJob("MyMethodXxlJob")
    public void sayHello() {
        XxlJobHelper.log("hello method xxl-job");
    }
}
  • 创建BEAN模式(方法形式)的任务
    在这里插入图片描述

  • 执行任务并查看执行结果
    与前面GLUE模式(Java)任务的操作类似

参考来源

  • XXL-JOB官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1815699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web前端大作业:基于html+css+js的仿酷狗音乐项目(内附源码)

文章目录 一、项目介绍二、项目展示三、源码展示四、获取源码 一、项目介绍 课设是要仿照酷狗音乐的首页进行设计。酷狗音乐是国内知名的音乐应用程序,凭借其优秀的音乐库和智能推荐功能吸引了大量用户群体。模仿酷狗音乐的首页设计,可以让课设展现出专业水准,体现出对优秀产品…

Excel自定义排序和求和

概览 excel作为办公的常备工具&#xff0c;好记性不如烂笔头&#xff0c;在此梳理记录下&#xff0c;此篇文章主要是记录excel的自定义排序和求和 一. 自定义排序 举个例子 1. 填充自定义排序选项 实现步骤&#xff1a; 选定目标排序值&#xff1b;文件->选项->自定…

zypcy

一、浏览器调试 1、elements 2、Network 用于抓包 Preserve log&#xff1a;保留日志&#xff0c;所有日志都会被保留&#xff0c;而不是被覆盖&#xff0c;刷新前刷新后的日志都会被保留 Disable cache&#xff1a;禁止缓存&#xff0c;保证每次变化都是从服务器请求的数据&…

海洋CMS /js/player/dmplayer/dmku/ SQL注入漏洞复现(CVE-2024-29275)

0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统&#xff0c;灵活、方便、人性化设计、简单易用是最大的特色&#xff0c;可快速建立一个海量内容的专业网站。海洋CMS基于PHPMySql技术开发&#xff0c;完全开源免费 、无任何加密代码。 0x02 漏洞概述 海…

SAP 中的Incoterms国际贸易条款术语解释

之前写代码建交货单的时候总是会遇到这个字段&#xff0c;通常我们可能会填FOB或者CIF或者其他&#xff0c;但并不清楚这些都是什么意思&#xff0c;偶然间看到一篇帖子对此作了解释&#xff0c;也记录分享一下。 原文地址&#xff1a; Incoterms&#xff5c;FOB、CFR和CIF&a…

pom学习笔记:kimi的自动化操作

1.先看结构&#xff1a; 声明&#xff1a;我是初学&#xff0c;可能有不合理的地方。 2.Base层。 我是把原来一个kimi的自动问答的代码改过来。 分析&#xff1a;其实我是新手&#xff0c;因为我用的浏览器是固定的&#xff0c;也没有打算和别人用。所以浏览器层面年的全部写…

C语言,struct 结构体、union共用体的使用

//状态字节&#xff0c;根据数据定义几个标志&#xff0c;标志位依据联合体内部结构体进行变量定义 //目的&#xff0c;节省内存空间&#xff0c;省去特定字节 struct STATDATA {union{unsigned char stat;struct {unsigned stat0:1;unsigned stat1:1;unsigned stat2:1;unsign…

rtl8723du android5.1 6818 (wifi 部分)(第三部分)

这部分主要就是 应用了。具体的详细框架 在 android4.4 部分写的差不多的。 之前板卡依然是使用的 mt6620 ,所以在移植的过程中,需要把之前的 wifi 的驱动一点一点的去掉。 1 kernel 的修改。 将驱动拷贝到 wireless 下。 修改Kconfig 修改Makefile 2 驱动的Makefile 的修改…

塬号星球项目介绍

开发时间&#xff1a;2024 . 02~ 至今 已经部署上线&#xff08;可以在微信里搜索“塬号星球”&#xff09;&#xff0c;仍在完善阶段。 塬号星球——周边信息社交生活服务平台 项目介绍&#xff1a;项目主要是针对于在大学有流量却不知道该如何变现的朋友&#xff0c;比…

Oracle最终会扼杀MySQL?(译)

原文网站&#xff1a;https://www.percona.com/blog/is-oracle-finally-killing-mysql/ 作者&#xff1a;Peter Zaitsev 自从Oracle收购了MySQL后&#xff0c;很多人怀疑Oracle对开源MySQL的善意&#xff0c;这篇percona的文章深入分析了Oracle已经和将要对MySQL采取的措施&a…

欢乐钓鱼大师攻略:buff大全讲解,云手机托管使用教程!

《欢乐钓鱼大师》是一款充满趣味与挑战的钓鱼模拟游戏。在这款游戏中&#xff0c;玩家不仅能够体验到钓鱼的乐趣&#xff0c;还需要通过策略性地收集与使用不同的钓鱼装备来提升自己的钓鱼技巧和效率。本文将为你提供一份详细的游戏攻略&#xff0c;帮助你在游戏中轻松上手并快…

CNS-BL30H系列直流无刷电机驱动器|电机参数配置方法

CNS-BL30H系列直流无刷电机驱动器|电机包含CNS-BL30HB、CNS-BL30HDN、CNS-BL30HSN&#xff0c;采用一驱二设计&#xff0c;可以同时驱动两个小于48V/1000W的直流无刷电机&#xff0c;体积小巧&#xff0c;安装方便&#xff0c;接线快捷&#xff0c;本文重点介绍CNS-BL30H系列直…

什么是 URL 过滤?是如何保障浏览体验的?

互联网是一个无边无际的空间&#xff0c;几乎包含了你能想象到的一切。不幸的是&#xff0c;这意味着也存在着从不合适到非常危险的网站。这就是 URL 过滤可以发挥作用的地方。 一、URL 过滤的含义 我们希望您已经熟悉 URL&#xff08;统一资源定位器&#xff09;&#xff0c;…

Non-aligned Supervision for Real Image Dehazing

原文链接&#xff1a;https://www.semanticscholar.org/paper/Non-aligned-supervision-for-Real-Image-Dehazing-Fan-Guo/7595d39e71ae58343e8728fc1af0e18ffe38218b 数据集&#xff1a;https://www.cityscapes-dataset.com/ 真实的图像去雾的非对准监督 摘要 由于天气条件…

【Linux】手残党必学,再也不用跑路了

目录 &#x1f6a8;危险命令&#xff0c;请勿靠近TAT&#x1f58b;️rm –rf&#x1f58b;️){:|:&};:&#x1f58b;️mv 指定的文件夹 /dev/null&#x1f58b;️wget http://malicious_source -O- | sh&#x1f58b;️dd if/dev/random of/dev/sda&#x1f58b;️隐藏命令…

国标GB28181安防视频监控EasyCVR平台级联时上级平台不显示通道是什么原因?

国标GB28181安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快&#xff0c;可支持的主流标准协议有GA/T 1400、国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。 有用户反馈&#xff…

蓝牙芯片TD5322A,蓝牙5.1数传芯片介绍—拓达半导体

蓝牙芯片原厂&#xff0c;拓达芯片TD5322A是一颗支持蓝牙BLE和SPP的数传芯片&#xff0c;蓝牙5.1版本。芯片的优点是尺寸小(SOP-8封装&#xff09;&#xff0c;性能强&#xff0c;价格低&#xff0c;以及简单明了的透传和串口AT控制功能&#xff0c;大大降低了在其它电子产品中…

java版spring cloud 深入探究ERP管理系统源码:功能模块详解与操作流程梳理

随着数字化转型的深入&#xff0c;企业对于高效、稳定且具有扩展性的管理系统的需求日益增加。为此&#xff0c;我们开发了一套基于Java技术的鸿鹄ERP管理系统&#xff0c;该系统整合了Spring Cloud Alibaba、Spring Boot、MybatisPlus、Redis等前沿技术&#xff0c;并采用了VU…

XmanagerXShell软件下载及安装教程

​XManager企业版是一款完整的企业网络连接套件&#xff0c;它配备了一个高性能的PC服务器&#xff0c;安全终端模拟器&#xff0c;是一个一体化的解决方案&#xff0c;将xmanager&#xff0c;xshell&#xff0c;xftp&#xff0c;xlpd&#xff0c;Xbrowser及xstart放置在一个软…

maven版本

一、快照版本SNAPSHOT和发布版本RELEASE区别 快照版本SNAPSHOT和发布版本RELEASE区别-CSDN博客 在使⽤maven过程中&#xff0c;我们在开发阶段经常性的会有很多公共库处于不稳定状态&#xff0c;随时需要修改并发布&#xff0c;可能⼀天就要发布⼀次&#xff0c;遇到bug时&am…