XXL-Job 支持多种任务类型,以下是常见任务类型的示例 Demo,包含核心配置和代码片段,帮助快速理解用法:

一、Bean模式任务(最常用)

通过注解  @XxlJob  定义任务方法,直接在 Spring 容器中管理,适合 Java 项目。

1. 配置步骤

- 依赖引入(Maven):
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.0</version> <!-- 最新版本 -->
</dependency>

- 任务代码:
@Component
public class DemoJobHandler {

    // 任务名称:对应 XXL-Job 控制台配置的 "JobHandler" 字段
@XxlJob("demoBeanJob")
public ReturnT<String> demoBeanJob(String param) throws Exception {
XxlJobLogger.log("Bean模式任务执行,参数:{}", param);

        // 业务逻辑:例如简单打印
System.out.println("执行Bean任务,时间:" + new Date());

        return ReturnT.SUCCESS; // 成功标识
}
}

- 控制台配置:
任务类型选择“BEAN”,JobHandler 填写  demoBeanJob ,其他参数(如定时规则)按需配置。

二、分片广播任务(分布式并行处理)

适合大数据量场景,将任务拆分为多个分片,由不同执行器并行处理。

1. 任务代码

@XxlJob("shardingJob")
public ReturnT<String> shardingJob(String param) throws Exception {
// 获取分片信息:当前分片索引(0开始)、总分片数
int shardIndex = XxlJobHelper.getShardIndex();
int shardTotal = XxlJobHelper.getShardTotal();

    XxlJobLogger.log("分片任务执行:分片索引={}, 总分片数={}", shardIndex, shardTotal);

    // 业务逻辑:按分片处理数据(例如处理用户ID%shardTotal=shardIndex的数据)
for (int userId = 1; userId <= 1000; userId++) {
if (userId % shardTotal == shardIndex) {
System.out.println("处理用户ID:" + userId);
}
}

    return ReturnT.SUCCESS;
}


- 控制台配置:
任务类型选择“BEAN”,JobHandler 填写  shardingJob ,并设置“分片总数”(如4),执行器会按分片数并行处理。

三、GLUE模式(Java)

任务代码直接在 XXL-Job 控制台编写(动态脚本),无需重启服务,适合简单逻辑或临时任务。

1. 控制台配置

- 任务类型选择“GLUE(Java)”,在“GLUE代码”编辑器中编写:
// 继承IJobHandler
public class GlueJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
XxlJobLogger.log("GLUE模式任务执行,参数:{}", param);
System.out.println("动态脚本执行,时间:" + new Date());
return ReturnT.SUCCESS;
}
}

- 保存后直接触发,代码实时生效。

四、命令行任务

执行系统命令(如脚本、程序),适合跨语言场景。

1. 控制台配置

- 任务类型选择“COMMAND”,“JobHandler”填写命令内容:
# 示例:执行shell脚本
/home/xxl-job/demo.sh "param1"

- 脚本内容( demo.sh ):
echo "命令行任务执行,参数:$1,时间:$(date)"


五、任务依赖示例

通过“子任务ID”配置任务依赖,实现“任务A执行完再执行任务B”。

1. 配置步骤

- 在任务B的“子任务ID”中填写任务A的ID(多个用逗号分隔)。
- 任务A代码:
@XxlJob("parentJob")
public ReturnT<String> parentJob(String param) {
XxlJobLogger.log("父任务执行完成");
return ReturnT.SUCCESS;
}

- 任务B代码:
@XxlJob("childJob")
public ReturnT<String> childJob(String param) {
XxlJobLogger.log("子任务执行(依赖父任务完成)");
return ReturnT.SUCCESS;
}


关键说明

- 日志查看:通过  XxlJobLogger.log()  输出的日志,可在 XXL-Job 控制台“任务日志”中查看。
- 失败处理:任务返回  ReturnT.FAIL  时,控制台会标记失败,可配置重试次数。
- 参数传递:控制台配置的“执行参数”会作为  param  传入任务方法。

以上示例覆盖了日常开发中最常用的任务类型,可根据实际业务场景(如定时对账、数据同步)调整逻辑。

 

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python包安全工程实践:构建安全可靠的Python生态系统

在现代计算环境中&#xff0c;性能往往是Python包成功的关键因素。本文将深入探讨Python包的性能优化技术&#xff0c;包括并发编程模型、性能分析工具、内存优化策略以及原生代码集成等高级主题&#xff0c;帮助你构建高性能的Python组件。1. 性能分析基础1.1 性能分析工具矩阵…

kubernetes基础知识

个人博客站—运维鹿: http://www.kervin24.top CSDN博客—做个超努力的小奚&#xff1a; https://blog.csdn.net/qq_52914969?typeblog一、kubernetes介绍Kubernetes本质是一组服务器集群&#xff0c;它可以在集群的每个节点上运行特定的程序&#xff0c;来对节点中的容器进行…

winntsetup安装驱动和光驱安装F6功能一样----NT5.2.3790源代码分析

D:\drv>dir驱动器 D 中的卷是 新加卷卷的序列号是 443D-D64BD:\drv 的目录2025-08-03 23:57 <DIR> . 2025-08-03 23:57 <DIR> .. 2008-05-27 10:01 119,068 yk51x86.cat 2008-05-20 10:01 969,380 yk51x86.inf…

Web 开发 11

今天完成了workshop2&#xff0c;进度有点慢&#xff0c;但是记录一下极为愚蠢的一轮轮问答和思考~&#xff01;&#xff08;还是有点成就感的&#xff09;ps&#xff1a;【】内为我的提问1 导入语句&#xff08;ES6 模块导入语法&#xff09;【import CatHappiness from "…

写作路上的迷茫与突破

曾经&#xff0c;我也是那个在写作面前踌躇不前的人。每次提笔&#xff0c;满心都是“我写不好”“我没什么可写的”“我达不到别人的高度”……这些念头像藤蔓一样&#xff0c;紧紧缠绕着我&#xff0c;让我寸步难行。我看着群里的小伙伴们一个个妙笔生花&#xff0c;自己却只…

23 Active Directory攻击与防护策略解析

引言 Active Directory&#xff08;AD&#xff09;是企业IT环境中用户认证、访问控制和身份管理的核心。因其掌握整个网络的"钥匙"&#xff0c;AD常成为攻击者的首要目标。 从凭证转储到隐蔽侦察&#xff0c;攻击者通过多种手段控制AD。无论您是网络安全分析师、红…

【内容规范】关于标题中【】标记的使用说明

【内容规范】关于标题中【】标记的使用说明 在信息爆炸的时代&#xff0c;如何让内容更易识别、更具条理性&#xff0c;成为内容创作者和平台运营者共同关注的问题。标题中【】标记的使用&#xff0c;正是在这种需求下形成的一种实用规范。 这种规范的核心作用在于建立统一的内…

centos 9 安装docker教程

拉取相关依赖 dnf -y install dnf-plugins-core设置阿里云镜像库 dnf config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装docker dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plu…

关闭Jetbrains Mono字体连写、连字功能

所谓的关闭Jetbrains Mono字体连写&#xff0c;其实就是更换为Jetbrains Mono NL字体二者的区别就是符号间距的大小不同&#xff0c;也就是有无连字功能。 下图以Visutal Studio为例&#xff1a;

漫花软件集合分享

漫花软件集合分享的各种apk 1、磁盘漫画【推荐】 2、你搜 3、皮皮喵 4、泼辣漫画 5、趣漫画 6、异次元&图源 7、漫 8、再漫画X 9、章鱼漫画 10、芝士漫画&图源 通过网盘分享的文件&#xff1a;漫画软件 链接: https://pan.baidu.com/s/1dlGl50MNzzVOdTP38_…

DB-GPT 0.7.3 版本更新:支持Qwen3 Embedding和Reranker模型、支持知识库自定义检索策略等

V0.7.3版本主要新增、增强了以下核心特性 &#x1f340; 支持Qwen3 Embedding和Reranker模型 &#x1f340; 支持知识库自定义检索策略&#xff1a;语义检索、全文检索、树形检索、混合检索等 &#x1f340; 新增GaussDB数据源支持 &#x1f340; 支持GLM-4.1V多模态模型 …

Django常见模型字段

AutoField:数据库中的自动增长类型&#xff0c;相当于ID自动增长的IntegerField类型字段&#xff0c;对应mysql的Int类型 BooleanField:真/假的布尔类型字段&#xff0c;对应mysql的Tinyint类型 CharField:字符类型字段&#xff0c;对应mysql的varChar类型 DateField:日期字段&…

前端列表封面图如何自不同图片比例不变形

设置图片宽度100%时&#xff0c;若不设置高度&#xff0c;可能导致高度不足导致空白区域。如何实现图片高度自适应填充&#xff0c;避免空白区域&#xff1f;解决方式&#xff1a;加上height&#xff1a;100%&#xff1b;object-fit:cover&#xff1b;就可以始终剪切铺满&#…

记录一次Spring Cloud Gateway配置的跨域处理:解决 ‘Access-Control-Allow-Origin‘ 头包含多个值的问题

在微服务架构中&#xff0c;前端与后端分离已经成为一种常见模式。这种模式下&#xff0c;前后端通常会部署在不同的域名或端口上&#xff0c;这就导致了跨域资源共享&#xff08;CORS&#xff09;问题。最近&#xff0c;在我们的项目中&#xff0c;我们遇到了这样一个问题&…

扫雷游戏完整代码

扫雷游戏完整代码test.cgame.cgame.h

vue打包后如何在本地运行?

1.打包前的配置打开vue.config.js配置如图所示内容//打包配置文件 module.exports {assetsDir: static,parallel: false,publicPath: ./, };这段代码是Vue.js项目的打包配置文件&#xff0c;主要功能包括&#xff1a; - assetsDir: static - 设置静态资源文件夹名为static - p…

Python特性工厂函数详解:优雅管理属性验证

在Python中&#xff0c;特性(property)是一种强大的工具&#xff0c;它允许我们在访问属性时执行自定义逻辑。本文将深入分析一个名为quantity的特性工厂函数&#xff0c;它用于确保属性值必须为正数。 特性工厂函数的概念 特性工厂函数是一种创建并返回property对象的函数&…

Ubuntu系统VScode实现opencv(c++)鼠标操作与响应

在之前的创作中心-CSDN滚动条调整图片亮度-CSDN博客创作中心-CSDN中,我们已经了解了滚动条实现亮度以及对比度调节,为了实现对图像中感兴趣区域&#xff08;ROI, Region of Interest&#xff09;的交互式选取&#xff0c;本文利用 OpenCV 提供的鼠标事件回调机制&#xff0c;设…

True or False? 基于 BERT 学生数学问题误解检测

True or False? 基于 BERT 学生数学问题误解检测 代码详见&#xff1a;https://github.com/xiaozhou-alt/Student_Math_Misconception 文章目录True or False? 基于 BERT 学生数学问题误解检测一、项目介绍二、文件夹结构三、数据集介绍四、BERT 模型介绍五、项目实现1. 数据…

小程序基于vue+nodejs的私人定做订制订单发布与对应商品出售平台

文章目录项目介绍主要技术与实现手段具体实现截图关于我本系统开发思路研究思路、方法和步骤java类核心代码部分展示系统测试本系统技术可行性分析源码获取详细视频演示或者查看其他版本&#xff1a;文章底部获取博主联系方式&#xff01;项目介绍主要技术与实现手段 uni-app框…