From 378a54495e163fcd60f599a10f160a75b2ed0514 Mon Sep 17 00:00:00 2001 From: "udf_admin@163.com" Date: Wed, 20 Dec 2017 22:18:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A1=E5=88=92=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/itkk/udf/id/IdWorkerTest.java | 0 .../org/itkk/udf/scheduler/IRmsJobEvent.java | 16 ++++----- .../udf/scheduler/impl/DefRmsJobEvent.java | 13 +++---- .../udf/scheduler/job/AbstractBaseRmsJob.java | 36 +++++++++++++------ 4 files changed, 41 insertions(+), 24 deletions(-) rename udf-starter-id/src/main/test/{java => }/org/itkk/udf/id/IdWorkerTest.java (100%) diff --git a/udf-starter-id/src/main/test/java/org/itkk/udf/id/IdWorkerTest.java b/udf-starter-id/src/main/test/org/itkk/udf/id/IdWorkerTest.java similarity index 100% rename from udf-starter-id/src/main/test/java/org/itkk/udf/id/IdWorkerTest.java rename to udf-starter-id/src/main/test/org/itkk/udf/id/IdWorkerTest.java diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java b/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java index 2412795..f9c19ea 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java +++ b/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/IRmsJobEvent.java @@ -22,7 +22,14 @@ public interface IRmsJobEvent { * @param rmsJobParam rmsJobParam * @return boolean */ - boolean hasRunning(RmsJobParam rmsJobParam); + boolean beginRun(RmsJobParam rmsJobParam); + + /** + * endRun + * + * @param rmsJobParam rmsJobParam + */ + void endRun(RmsJobParam rmsJobParam); /** * 描述 : save @@ -32,11 +39,4 @@ public interface IRmsJobEvent { */ void save(RmsJobParam param, RmsJobResult result); - /** - * 描述 : delete - * - * @param fireInstanceId fireInstanceId - */ - void delete(String fireInstanceId); - } diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java b/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java index 3e20e02..a1c97b1 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java +++ b/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/impl/DefRmsJobEvent.java @@ -12,11 +12,16 @@ import org.itkk.udf.scheduler.client.domain.RmsJobResult; public class DefRmsJobEvent implements IRmsJobEvent { @Override - public boolean hasRunning(RmsJobParam rmsJobParam) { - log.info("----- DefRmsJobEvent.hasRunning -----> {}", rmsJobParam.toString()); + public boolean beginRun(RmsJobParam rmsJobParam) { + log.info("----- DefRmsJobEvent.beginRun -----> {}", rmsJobParam.toString()); return false; } + @Override + public void endRun(RmsJobParam rmsJobParam) { + log.info("----- DefRmsJobEvent.endRun -----> {}", rmsJobParam.toString()); + } + @Override public void save(RmsJobParam param, RmsJobResult result) { if (param != null) { @@ -27,8 +32,4 @@ public class DefRmsJobEvent implements IRmsJobEvent { } } - @Override - public void delete(String fireInstanceId) { - log.info("----- DefRmsJobEvent.delete -----> {}", fireInstanceId); - } } diff --git a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java b/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java index de507de..632005f 100644 --- a/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java +++ b/udf-starter-scheduler/src/main/java/org/itkk/udf/scheduler/job/AbstractBaseRmsJob.java @@ -75,13 +75,17 @@ public abstract class AbstractBaseRmsJob extends AbstractBaseJob { * @throws JobExecutionException JobExecutionException */ protected void disallowConcurrentExecute(RmsJobParam rmsJobParam) throws JobExecutionException { - if (!this.hasRunning(rmsJobParam)) { //没有正在运行的任务才能运行 - this.execute(rmsJobParam); - } else { //跳过执行,并且记录 - RmsJobResult result = new RmsJobResult(); - result.setId(rmsJobParam.getId()); - result.setStats(RmsJobStats.SKIP.value()); - save(rmsJobParam, result); + try { + if (!this.beginRun(rmsJobParam)) { //没有正在运行的任务才能运行 + this.execute(rmsJobParam); + } else { //跳过执行,并且记录 + RmsJobResult result = new RmsJobResult(); + result.setId(rmsJobParam.getId()); + result.setStats(RmsJobStats.SKIP.value()); + save(rmsJobParam, result); + } + } finally { + this.endRun(rmsJobParam); } } @@ -127,14 +131,26 @@ public abstract class AbstractBaseRmsJob extends AbstractBaseJob { } /** - * 检查是否有正在运行 + * 开始运行任务 * * @param rmsJobParam rmsJobParam * @return 是否正在运行 */ - private boolean hasRunning(RmsJobParam rmsJobParam) { + private boolean beginRun(RmsJobParam rmsJobParam) { IRmsJobEvent rmsJobEvent = this.getRmsJobEvent(); - return rmsJobEvent != null && rmsJobEvent.hasRunning(rmsJobParam); + return rmsJobEvent != null && rmsJobEvent.beginRun(rmsJobParam); + } + + /** + * 结束运行任务 + * + * @param rmsJobParam rmsJobParam + */ + private void endRun(RmsJobParam rmsJobParam) { + IRmsJobEvent rmsJobEvent = this.getRmsJobEvent(); + if (rmsJobEvent != null) { + rmsJobEvent.endRun(rmsJobParam); + } } /**