|
@@ -125,8 +125,16 @@ public class TaskExecuteThread implements Runnable, Delayed {
|
|
|
|
|
|
@Override
|
|
|
public void run() {
|
|
|
-
|
|
|
TaskExecuteResponseCommand responseCommand = new TaskExecuteResponseCommand(taskExecutionContext.getTaskInstanceId(), taskExecutionContext.getProcessInstanceId());
|
|
|
+ if (Constants.DRY_RUN_FLAG_YES == taskExecutionContext.getDryRun()) {
|
|
|
+ responseCommand.setStatus(ExecutionStatus.SUCCESS.getCode());
|
|
|
+ responseCommand.setEndTime(new Date());
|
|
|
+ TaskExecutionContextCacheManager.removeByTaskInstanceId(taskExecutionContext.getTaskInstanceId());
|
|
|
+ ResponceCache.get().cache(taskExecutionContext.getTaskInstanceId(), responseCommand.convert2Command(), Event.RESULT);
|
|
|
+ taskCallbackService.sendResult(taskExecutionContext.getTaskInstanceId(), responseCommand.convert2Command());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
logger.info("script path : {}", taskExecutionContext.getExecutePath());
|
|
|
// check if the OS user exists
|
|
@@ -146,13 +154,8 @@ public class TaskExecuteThread implements Runnable, Delayed {
|
|
|
}
|
|
|
logger.info("the task begins to execute. task instance id: {}", taskExecutionContext.getTaskInstanceId());
|
|
|
|
|
|
- int dryRun = taskExecutionContext.getDryRun();
|
|
|
// copy hdfs/minio file to local
|
|
|
- if (dryRun == Constants.DRY_RUN_FLAG_NO) {
|
|
|
- downloadResource(taskExecutionContext.getExecutePath(),
|
|
|
- taskExecutionContext.getResources(),
|
|
|
- logger);
|
|
|
- }
|
|
|
+ downloadResource(taskExecutionContext.getExecutePath(), taskExecutionContext.getResources(), logger);
|
|
|
|
|
|
taskExecutionContext.setEnvFile(CommonUtils.getSystemEnvPath());
|
|
|
taskExecutionContext.setDefinedParams(getGlobalParamsMap());
|
|
@@ -177,31 +180,28 @@ public class TaskExecuteThread implements Runnable, Delayed {
|
|
|
taskRequest.setTaskLogName(taskLogName);
|
|
|
|
|
|
task = taskChannel.createTask(taskRequest);
|
|
|
+
|
|
|
// task init
|
|
|
this.task.init();
|
|
|
+
|
|
|
//init varPool
|
|
|
this.task.getParameters().setVarPool(taskExecutionContext.getVarPool());
|
|
|
|
|
|
- if (dryRun == Constants.DRY_RUN_FLAG_NO) {
|
|
|
- // task handle
|
|
|
- this.task.handle();
|
|
|
+ // task handle
|
|
|
+ this.task.handle();
|
|
|
|
|
|
- // task result process
|
|
|
- if (this.task.getNeedAlert()) {
|
|
|
- sendAlert(this.task.getTaskAlertInfo());
|
|
|
- }
|
|
|
- responseCommand.setStatus(this.task.getExitStatus().getCode());
|
|
|
- } else {
|
|
|
- responseCommand.setStatus(ExecutionStatus.SUCCESS.getCode());
|
|
|
- task.setExitStatusCode(Constants.EXIT_CODE_SUCCESS);
|
|
|
+ // task result process
|
|
|
+ if (this.task.getNeedAlert()) {
|
|
|
+ sendAlert(this.task.getTaskAlertInfo());
|
|
|
}
|
|
|
+
|
|
|
+ responseCommand.setStatus(this.task.getExitStatus().getCode());
|
|
|
responseCommand.setEndTime(new Date());
|
|
|
responseCommand.setProcessId(this.task.getProcessId());
|
|
|
responseCommand.setAppIds(this.task.getAppIds());
|
|
|
responseCommand.setVarPool(JSONUtils.toJsonString(this.task.getParameters().getVarPool()));
|
|
|
logger.info("task instance id : {},task final status : {}", taskExecutionContext.getTaskInstanceId(), this.task.getExitStatus());
|
|
|
} catch (Throwable e) {
|
|
|
-
|
|
|
logger.error("task scheduler failure", e);
|
|
|
kill();
|
|
|
responseCommand.setStatus(ExecutionStatus.FAILURE.getCode());
|