老项目用的xxl-job 2.2

SpringBoot整合XXL-JOB XXL-JOB是一个开源的分布式任务调度平台,它能够帮助开发者简化定时任务的管理和执行。本文将指导你如何将XXL-JOB集成到Spring Boot项目中,以便管理和调度定时任务。通过以上步骤,你已经成功将XXL-JOB集成到Spring Boot项目中,并创建了一个简单的任务处理器。XXL-JOB提供了强大的任务调度功能,能够帮助你高效地管理和执行定时任务。随着你对XXL-JOB的深入了解,你还可以探索其更多高级特性和配置。 阅读详情

一、2.2.0 版本官方支持情况

核心事实:
XXL-Job 在 2.3.0 之前未提供官方管理客户端,2.2.0 版本需直接调用其 REST API 进行任务管理。但可通过以下方案实现:


二、2.2.0 兼容方案

方案 1:直接 HTTP API 调用(推荐)
// 1. 登录认证获取Cookie
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost loginRequest = new HttpPost("http://xxl-job-admin:8080/xxl-job-admin/login");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("userName", "admin"));
params.add(new BasicNameValuePair("password", "123456"));
loginRequest.setEntity(new UrlEncodedFormEntity(params));

try (CloseableHttpResponse response = httpClient.execute(loginRequest)) {
    // 保存Cookie用于后续请求
    String cookie = response.getFirstHeader("Set-Cookie").getValue();
  
    // 2. 创建任务
    HttpPost createRequest = new HttpPost("http://xxl-job-admin:8080/xxl-job-admin/jobinfo/add");
    createRequest.setHeader("Cookie", cookie);
  
    JSONObject jobJson = new JSONObject();
    jobJson.put("jobGroup", 2);            // 执行器ID
    jobJson.put("jobDesc", "数据备份任务");
    jobJson.put("scheduleType", "CRON");
    jobJson.put("scheduleConf", "0 0 2 * * ?");
    jobJson.put("glueType", "BEAN");
    jobJson.put("executorHandler", "backupHandler");
    jobJson.put("author", "DBA");
  
    createRequest.setEntity(new StringEntity(jobJson.toString(), ContentType.APPLICATION_JSON));
    httpClient.execute(createRequest);  // 创建任务
  
    // 3. 删除任务 (需要jobId)
    HttpPost deleteRequest = new HttpPost("http://xxl-job-admin:8080/xxl-job-admin/jobinfo/remove");
    deleteRequest.setHeader("Cookie", cookie);
    List<NameValuePair> delParams = new ArrayList<>();
    delParams.add(new BasicNameValuePair("id", "123")); // 任务ID
    deleteRequest.setEntity(new UrlEncodedFormEntity(delParams));
    httpClient.execute(deleteRequest);
}
方案 2:封装简易客户端
public class XxlJobClientV2 {
    private final String adminUrl;
    private String authCookie;

    public XxlJobClientV2(String adminUrl, String username, String password) throws IOException {
        this.adminUrl = adminUrl;
        this.authCookie = login(username, password);
    }
  
    private String login(String user, String pass) throws IOException {
        // 登录逻辑(同方案1)
        return "XXL_JOB_LOGIN_IDENTITY=..."; 
    }
  
    public int createJob(JobInfo job) throws IOException {
        HttpPost request = new HttpPost(adminUrl + "/jobinfo/add");
        request.setHeader("Cookie", authCookie);
        // 设置JSON参数...
        return parseJobIdFromResponse(executeRequest(request));
    }
  
    public void deleteJob(int jobId) throws IOException {
        HttpPost request = new HttpPost(adminUrl + "/jobinfo/remove");
        request.setHeader("Cookie", authCookie);
        request.setEntity(new UrlEncodedFormEntity(
            Collections.singletonList(new BasicNameValuePair("id", String.valueOf(jobId)))
        );
        executeRequest(request);
    }
  
    // 其他操作封装...
}

三、2.2.0 核心 API 列表

功能方法路径参数格式
登录POST/loginform-urlencoded
添加任务POST/jobinfo/addJSON
更新任务POST/jobinfo/updateJSON
删除任务POST/jobinfo/removeform-urlencoded
启动任务POST/jobinfo/startform-urlencoded
停止任务POST/jobinfo/stopform-urlencoded
触发执行POST/jobinfo/triggerform-urlencoded
任务列表POST/jobinfo/pageListJSON
执行日志POST/joblog/pageListJSON

四、关键参数说明(2.2.0)

任务创建 JSON 结构:
{
  "jobGroup": 2,                 // 执行器ID(必填)
  "jobDesc": "订单超时处理",      // 任务描述
  "scheduleType": "CRON",        // 调度类型: CRON/FIX_RATE
  "scheduleConf": "0 0/5 * * * ?", // cron表达式
  "glueType": "BEAN",            // 模式: BEAN/GLUE_GROOVY等
  "executorHandler": "orderTimeoutHandler", // Bean模式标识
  "executorParam": "",           // 任务参数
  "executorRouteStrategy": "FIRST", // 路由策略
  "misfireStrategy": "DO_NOTHING", // 调度过期策略
  "author": "TechTeam",          // 负责人
  "alarmEmail": "alert@company.com" // 报警邮箱
}
分页查询参数:
{
  "start": 0,                    // 起始位置
  "length": 10,                  // 每页数量
  "jobGroup": 2,                 // 执行器ID
  "triggerStatus": -1,           // 状态: -1=全部, 0=停止, 1=运行
  "jobDesc": "",                 // 任务描述过滤
  "executorHandler": ""          // 执行器Handler过滤
}

五、2.2.0 特有注意事项

  1. Cookie 有效期问题:
       2.2.0 会话有效期固定 30 分钟,需实现会话刷新:
       java    // 每次请求前检查会话    if (isSessionExpired()) {        this.authCookie = login(username, password);    }    

  2. 参数差异:
       相比 2.4.0,2.2.0 缺少以下字段:
       - glueUpdatetime (GLUE更新时间)
       - childJobId (子任务ID)
       - executorTimeout (任务超时时间)

  3. 执行器注册方式:
       2.2.0 需要手动在管理界面添加执行器,不支持自动注册


六、升级建议

如果条件允许,强烈建议升级到 2.4.0+,主要优势:

+ 官方管理客户端支持
+ 动态执行器注册
+ OpenAPI 安全认证
+ 更完善的监控指标
+ 任务分片广播优化
- 需要兼容旧任务配置

版本迁移提示:
如同将蒸汽机车升级为高铁 - 2.2.0 如同可靠的蒸汽动力系统,能完成基本运输;而 2.4.0+ 则是现代化高速铁路,提供更强大的调度能力和安全保障。迁移时需注意:

  1. 备份 /data/applogs/xxl-job/ 目录
  2. 逐条验证旧任务配置
  3. 使用 xxl-job-migration-tool 进行配置转移
  4. 新版本采用 accessToken 替代基础认证
XXL-JOB 2.2.0 分布式任务调度平台部署教程 部署工具是将软件应用从开发环境迁移到生产环境的关键一环。在复杂的IT架构中,自动化部署工具能够减少人为错误,提高部署效率,保证部署流程的一致性。在现代敏捷开发和持续集成/持续部署(CI/CD)环境中,部署工具的作用更加凸显。 阅读详情

相关推荐

xxl-job-2.2.0.zip

xxl-job-2.2.0源码

分布式任务调度框架xxljob2.2.0详细安装使用教程

centos8安装配置xxljob2.2.0简介概述特性总体设计源码目录介绍“调度数据库”配置架构设计设计思想系统组成架构图安装环境创建目录下载解压 简介 概述 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 特性 简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手。 动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效。 调度中心HA(中心式):调度采用中心式设计,“调度

weixin_44798288的博客 8235

XXL-JOB金仓版

XXL-JOB 任务调度中心,由原来的mysql数据库改为了金仓数据库,其他地方无改动。

XXLJOB从2.2.0升级到2.4.0步骤

XXL-JOB服务从2.2.0版本升级到2.4.0版本实践步骤。

于大宝子和小野丫头 3850

ICG cell如何通过Latch结构消除与门clock gating中的glitch?

本文深入解析了ICG Cell如何利用Latch结构解决传统与门时钟门控中的毛刺问题。通过将电平敏感锁存器与门控与门结合,ICG Cell将使能信号的变化严格限制在时钟低电平的安全窗口内采样和锁存,从而在时钟有效沿期间提供稳定的控制信号,从根本上消除了因信号延迟不同步而产生的glitch,确保了门控时钟的纯净与电路功能的可靠性。

weixin_29234423的博客 474

2025趋势:经济学研究中AI多智能体系统的6大架构方向(AI应用架构师必藏)

多智能体系统(MAS)由多个相互作用的智能体组成,每个智能体具备自主决策能力、感知环境的能力和与其他智能体通信的能力。微观行为的精细化建模:智能体可被赋予异质的偏好函数、信息集和决策规则,模拟真实市场的多样性动态交互的涌现性分析:通过智能体间的局部互动(如交易、合作、竞争),观察宏观经济现象的涌现过程反事实政策实验:在虚拟环境中安全测试极端政策(如负利率、全民基本收入)的连锁反应实时自适应调整:智能体可通过机器学习持续优化策略,模拟经济系统的演化特性。

AI 领航者的博客 1425

xxl-job 2.2.0

前言: 什么是定时任务? 希望代码在未来的时间里,按照一定的规律执行。 类似于闹钟的开发,希望每天早上7点叫我起床。 如果你的系统不进行分布式部署,仅仅是单机部署 目前我们的定时任务如何写的: 定时调度器与业务代码共存 @Cron(" * * 1 * * ?") public void fun (){ //.......... code ..... } 部署后的运行方式如下图 整个系统调度与执行在一起,单系统部署不存在问题,能够保证定时任务在指定的调度时间被执行一次。 ...

绚烂的天空 1171

Claude Code 接入 DeepSeek-V4 教程

本文介绍Claude Code的安装配置流程:1) 安装Node.js 18+和Git(Windows);2) 通过npm全局安装@anthropic-ai/claude-code;3) 配置DeepSeek API环境变量(需替换API Key);4) 启动Claude Code或配置VSCode插件。重点包括Linux/macOS和Windows的环境变量设置方法,以及VSCode插件的settings.json配置项。完成配置后即可在终端或VSCode中使用Claude Code功能。

培根芝士的专栏 2012

Docker-compose搭建xxl-job(并配置Python3环境xxl-job执行器)

【保姆级教程】Docker-compose搭建xxl-job(python3环境的xxl-job执行器), xxl-job python3 执行器

yqyn6的博客 4167

国内9大Coding Plan平台实测:CI/CD延迟与开发者体验横评

代码托管平台不仅是Git仓库,更是现代研发流程的‘生产力基建’核心。其底层能力涵盖Git协议优化、CI/CD调度实时性、制品库并发吞吐及RBAC权限收敛效率等关键维度。尤其在团队规模扩张、日均提交激增、多环境高频部署场景下,Webhook延迟、CI排队耗时、制品上传卡顿等应用层性能指标,远比网络层ping值更能决定开发效能。本文基于真实微服务项目(32模块、8.7万行/仓)与三类极端负载(长尾构建、热区冲突、制品洪峰),对国内9个满足Coding Plan标准的平台开展端到端压测,聚焦CI/CD延迟与开发者

weixin_29281941的博客 369

自定义载板RK3588HDMI输入配置完整解决方案

✅ HDMI输入信号检测✅ 自动时序识别(支持1080p@60Hz等标准格式)✅ V4L2视频设备接口✅ 实时视频流捕获✅ H.264编码录制✅ HDCP内容保护支持问题根因识别:发现了hdmim1模块资源冲突的本质问题硬件设计理解:明确了Orange Pi 5 Plus的真实硬件设计意图功能实现:成功启用HDMI输入功能,替代了无法使用的HDMI1输出完整验证:建立了从硬件检测到视频录制的完整测试流程。

梁俊星的博客 1273

xxl-job任务调度2.0.2升级到2.3.0版本,执行器改造过程中经验总结

xxl-job任务调度版本升级

weixin_43860634的博客 3101

【教培管家】小程序实战(五):体验课预约——从流量到转化的闭环

本节我们通过变量状态管理和数据联动,实现了孩子选择和日期选定。下一篇我们继续讲解预约页面,根据选择的日期来筛选排课,供用户进行预约。

低代码布道师的博客 1563

XXL-JOB快速入门(什么是XXL-JOB、部署XXL-JOB、在SpringBoot项目中接入XXL-JOB、XXL-JOB中的核心概念、集群环境下任务的路由策略)

XXL-JOB快速入门(什么是XXL-JOB、部署XXL-JOB、在SpringBoot项目中接入XXL-JOB、XXL-JOB中的核心概念、集群环境下任务的路由策略)

聂可以的博客 1万+

Unreal5从入门到精通之一文搞懂Unreal的C++代码编译之谜

我们在开发Unreal项目时,如果时蓝图模板的项目,一般问题不大,因为当你修改完蓝图,点击编译Compile+保存Save,就可以继续开发了。这对于开发者来说也非常友好。但是,如果你使用的C++模板开发项目,代码编译一切都变得魔幻起来,IDE(VS/Rider)里面有编译,编辑器里面也有编译,有什么区别呢?我们来列举几个新手常碰到的问题。1.代码我明明新建了,编辑器里怎么看不到?2.昨天我新家的功能运行的好好的,今天怎么感觉还是老逻辑。或者昨天加的新代码,新蓝图不见了。

TxNet 1607

AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产者:如何让自己生产的信息脱颖而出, 受到广大用户的关注? 为了解决这个矛盾, 推荐系统应时而生, 并飞速前进,在用户和信息之间架起了一道桥梁,一方面帮助用户发现对自己有价值的信息, 一方面让信息能够展现在对它感兴趣的用户前面。 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协

Miracle8070 8256

【分布式任务调度平台 XXL-JOB 急速入门】从零开始将 XXL-JOB 接入到自己的项目

XXL-JOB是一个分布式任务调度平台,用于解决大规模分布式任务调度问题。它基于Java语言开发,提供了轻量级、易扩展的任务调度和管理功能。

仰望天空,妳我亦是行人. 2176

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringBoot整合Xxl-Job

这样就表示Xxl-Job成功运行了。确保运行没问题后,就可以开始下一步。注意:在运行之前,需要把2的sql脚本执行完毕,并修改数据库连接池。可以不用eureka,这里我的项目中用到eureka所以增加该配置。第三、确实非常容易上手且轻量化(轻量化的一个体现就是非侵入式)第一、团队里有好几个人上一家公司或上上家公司用过。第二、这个生态比较丰富且开源。用户名默认为admin。

林知屿的博客 5966

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

xxl-job

​ XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。

luosuss的博客 2665

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

xxl-job接入springboot项目

xxl-job接入springboot项目

UuuuuuDie的博客 2197

项目终于用上了xxl-job,好起来了!

这就是本次 xxl-job 实战的全部内容了,写这篇文章主要是为了记录一下项目中是如何使用 xxl-job 的,并且提供一种分片广播均分任务的思路以及幂等性问题如何处理,具体使用 xxl-job 还需根据自己项目的需求,遇到问题可以参考官网。

sjkflw121150的博客 1669

【XXL-JOB】用XXL-JOB灵活的发布定时周期任务

XXL-Job:是大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展大众点评目前已接入XXL-JOB,该系统在内部已调度约100万次,表现优异。目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,360金融 (360),联想集团 (联想),易信 (网易)等等系统架构图设计思想将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。

Carefree_State的博客 3312

Xxl-job 一文读懂

数据备份订单未支付则自动取消定时爬取数据定时推送信息定时发布文章定时生成报表定时任务是指基于给定的时间点,间隔或者给定执行次数自动的执行程序。任务调度室系统的重要组成部分,而对于实时的系统,任务调度直接影响着系统的实时性。任务调度涉及多线程并发、运行时间规则定制与解析、线程池的维护等多项工作。application.properties 配置文件详解### web 服务端口及其项目名称### actuator 健康检查### resources 静态资源配置。

zhouzhiwengang的专栏 7202

【xxl-job】本地部署并接入xxl-job到项目中

XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。通常任务调度的程序是集成在应用中的,比如:优惠卷服务中包括了定时发放优惠卷的的调度程序,结算服务中包括了定期生成报表的任务调度程序,由于采用分布式架构,一个服务往往会部署多个冗余实例来运行我们的业务,在这种分布式系统环境下运行任务调度,我们称之为分布式任务调度。

Ez4Sterben的博客 5549
上一篇: 400行 代码 mergdown 工具简析
下一篇: Xtp-changelog
旷野说
博客等级 码龄9年 361粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值