修改计划任务处理逻辑

This commit is contained in:
udf_admin@163.com
2017-12-20 22:18:58 +08:00
parent 315bd860bc
commit 378a54495e
4 changed files with 41 additions and 24 deletions
@@ -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);
}
@@ -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);
}
}
@@ -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);
}
}
/**