|
|
|
@ -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()); |
|
|
|
|