From 437c4e143b58cbaebf379fa252c8de51987091e3 Mon Sep 17 00:00:00 2001 From: "xueli.xue" Date: Thu, 19 Nov 2020 21:51:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A0=B8=E5=BF=83=E7=B1=BB?= =?UTF-8?q?=20"IJobHandler"=20=E7=9A=84=20"execute"=20=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=87=BA=E5=85=A5=E5=8F=82=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E3=80=82=E6=94=B9=E4=B8=BA=E9=80=9A=E8=BF=87=20"XxlJobHelper.g?= =?UTF-8?q?etJobParam"=20=E8=8E=B7=E5=8F=96=E4=BB=BB=E5=8A=A1=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=B9=B6=E6=9B=BF=E4=BB=A3=E6=96=B9=E6=B3=95=E5=85=A5?= =?UTF-8?q?=E5=8F=82=EF=BC=8C=E9=80=9A=E8=BF=87=20"XxlJobHelper.handleSucc?= =?UTF-8?q?ess/handleFail"=20=E8=AE=BE=E7=BD=AE=E4=BB=BB=E5=8A=A1=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E5=B9=B6=E6=9B=BF=E4=BB=A3=E6=96=B9=E6=B3=95=E5=87=BA?= =?UTF-8?q?=E5=8F=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/XXL-JOB官方文档.md | 9 ++++++++- .../com/xxl/job/core/handler/impl/MethodJobHandler.java | 7 ++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/XXL-JOB官方文档.md b/doc/XXL-JOB官方文档.md index 9693305a..967ddb49 100644 --- a/doc/XXL-JOB官方文档.md +++ b/doc/XXL-JOB官方文档.md @@ -2066,7 +2066,14 @@ data: post-data - 3、【新增】新增任务辅助工具 "XxlJobHelper":提供统一任务辅助能力,包括:任务上下文信息维护获取(任务参数、任务ID、分片参数)、日志输出、任务结果设置……等; - 3.1、"ShardingUtil" 组件废弃:改用 "XxlJobHelper.getShardIndex()/getShardTotal();" 获取分片参数; - 3.2、"XxlJobLogger" 组件废弃:改用 "XxlJobHelper.log" 进行日志输出; -- 4、【优化】任务核心类 "IJobHandler" 的 "execute" 方法取消出入参设计。改为通过 "XxlJobHelper.getJobParam" 获取任务参数并替代方法入参,通过 "XxlJobHelper.handleSuccess/handleFail" 设置任务结果并替代方法出参; +- 4、【优化】任务核心类 "IJobHandler" 的 "execute" 方法取消出入参设计。改为通过 "XxlJobHelper.getJobParam" 获取任务参数并替代方法入参,通过 "XxlJobHelper.handleSuccess/handleFail" 设置任务结果并替代方法出参,示例代码如下; +``` +@XxlJob("demoJobHandler") +public void execute() { + String param = XxlJobHelper.getJobParam(); // 获取参数 + XxlJobHelper.handleSuccess(); // 设置任务结果 +} +``` - 4、【优化】Cron编辑器增强:Cron编辑器修改cron时可实时查看最近运行时间; - 5、【优化】执行器示例项目规范整理; - 6、【优化】任务调度生命周期重构:调度(schedule)、触发(trigger)、执行(handle)、回调(callback)、结束(complete); diff --git a/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/MethodJobHandler.java b/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/MethodJobHandler.java index 70c4e14a..2912638b 100644 --- a/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/MethodJobHandler.java +++ b/xxl-job-core/src/main/java/com/xxl/job/core/handler/impl/MethodJobHandler.java @@ -24,7 +24,12 @@ public class MethodJobHandler extends IJobHandler { @Override public void execute() throws Exception { - method.invoke(target); + Class[] paramTypes = method.getParameterTypes(); + if (paramTypes.length > 0) { + method.invoke(target, new Object[paramTypes.length]); // method-param can not be primitive-types + } else { + method.invoke(target); + } } @Override