diff --git a/common/src/main/java/com/sdm/common/feign/impl/pbs/TaskClientFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/pbs/TaskClientFeignClientImpl.java index df784ed7..27e84ace 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/pbs/TaskClientFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/pbs/TaskClientFeignClientImpl.java @@ -3,7 +3,6 @@ package com.sdm.common.feign.impl.pbs; import com.sdm.common.common.SdmResponse; import com.sdm.common.entity.req.pbs.SubmitHpcTaskRemoteReq; import com.sdm.common.feign.inter.pbs.ITaskFeignClient; -import com.sdm.common.log.CoreLogger; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -22,7 +21,7 @@ public class TaskClientFeignClientImpl implements ITaskFeignClient { response = taskFeignClient.adapterSubmitHpcJob(req); return response; } catch (Exception e) { - CoreLogger.error("SubmitHpcJob Exception:{}", e.getMessage()); + log.error("SubmitHpcJob Exception:{}", e.getMessage()); return SdmResponse.failed("Hpc任务提交失败:"+e.getMessage()); } diff --git a/flowable/src/main/java/com/sdm/flowable/delegate/handler/HpcHandler.java b/flowable/src/main/java/com/sdm/flowable/delegate/handler/HpcHandler.java index 421b84c1..9846490e 100644 --- a/flowable/src/main/java/com/sdm/flowable/delegate/handler/HpcHandler.java +++ b/flowable/src/main/java/com/sdm/flowable/delegate/handler/HpcHandler.java @@ -16,6 +16,7 @@ import com.sdm.common.feign.impl.system.MessageFeignClientImpl; import com.sdm.common.feign.inter.data.IDataFeignClient; import com.sdm.common.feign.inter.pbs.ITaskFeignClient; import com.sdm.common.log.CoreLogger; +import com.sdm.common.utils.MdcUtil; import com.sdm.flowable.entity.ProcessNodeParam; import com.sdm.flowable.enums.AsyncTaskStatusEnum; import com.sdm.flowable.service.IAsyncTaskRecordService; @@ -58,7 +59,8 @@ public class HpcHandler implements ExecutionHandler,HPCExecu * */ @Override public void execute(DelegateExecution execution, Map params, HPCExecuteConfig config) { - CoreLogger.info("hpc process excute,params:{},config:{}",JSONObject.toJSONString(params),JSONObject.toJSONString(config)); + MdcUtil.generateAndPutTraceId(); + log.info("hpc process excute,params:{},config:{}",JSONObject.toJSONString(params),JSONObject.toJSONString(config)); SubmitHpcTaskRemoteReq submitHpcTaskRemoteReq = convertParamsToReq(params); submitHpcTaskRemoteReq.setParams(params); // 设置软件id @@ -69,11 +71,12 @@ public class HpcHandler implements ExecutionHandler,HPCExecu String masterFileRegularStr = Objects.isNull(params.get("inputFormat"))?"":params.get("inputFormat").toString(); String inputFilesRegularStr = Objects.isNull(params.get("slaveFormat"))?"":params.get("slaveFormat").toString(); - CoreLogger.info("hpc executeMode:{}",params.get("executeMode")); + log.info("hpc executeMode:{}",params.get("executeMode")); String executeMode = params.get("executeMode").toString(); if(StringUtils.isBlank(executeMode)|| (!Objects.equals(executeMode,FlowableConfig.EXECUTE_MODE_AUTO)&& !Objects.equals(executeMode,FlowableConfig.EXECUTE_MODE_MANUAL))){ + MdcUtil.removeTraceId(); throw new RuntimeException("hpc executeMode illegal"); } // 自动才判断正则 @@ -81,10 +84,11 @@ public class HpcHandler implements ExecutionHandler,HPCExecu StringUtils.isBlank(masterFileRegularStr)){ log.info("hpc process excute,主求解文件规则是空,masterFileRegularStr:{},inputFilesRegularStr:{}", params.get("inputFormat"),params.get("slaveFormat")); + MdcUtil.removeTraceId(); throw new RuntimeException("Hpc任务执行失败,主求解文件规则不能是空"); } - CoreLogger.info("beforeNodeId:{},currentNodeId:{},masterFileRegularStr:{},inputFilesRegularStr:{}",beforeNodeId,currentNodeId,masterFileRegularStr,inputFilesRegularStr); - CoreLogger.info("Hpc执行 processDefinitionId:{},processInstanceId:{}",execution.getProcessDefinitionId(),execution.getProcessInstanceId()); + log.info("beforeNodeId:{},currentNodeId:{},masterFileRegularStr:{},inputFilesRegularStr:{}",beforeNodeId,currentNodeId,masterFileRegularStr,inputFilesRegularStr); + log.info("Hpc执行 processDefinitionId:{},processInstanceId:{}",execution.getProcessDefinitionId(),execution.getProcessInstanceId()); // 初始化用户/租户信息 initUserInfo(execution,params); // params 取只是测试使用 @@ -109,6 +113,7 @@ public class HpcHandler implements ExecutionHandler,HPCExecu // 推送失败消息 sendMsg(ThreadLocalContext.getTenantId(),ThreadLocalContext.getUserId(),submitHpcTaskRemoteReq.getJobName(),"失败"); log.error("HpcHandler submit failed:{}",JSONObject.toJSONString(params)); + MdcUtil.removeTraceId(); throw new RuntimeException("HpcHandler submit failed,"+submitResp.getMessage()); } @@ -125,7 +130,7 @@ public class HpcHandler implements ExecutionHandler,HPCExecu status, hpcTaskId ); - + MdcUtil.removeTraceId(); log.info("HPC 任务 {} 已提交", "hpcTaskId"); } @@ -154,7 +159,7 @@ public class HpcHandler implements ExecutionHandler,HPCExecu ThreadLocalContext.setUserId(userId); ThreadLocalContext.setUserName(userName); ThreadLocalContext.setTenantId(tenantId); - CoreLogger.info("hpcHander initUserInfo userId:{},tenantId:{},userName:{}",userId,tenantId,userName); + log.info("hpcHander initUserInfo userId:{},tenantId:{},userName:{}",userId,tenantId,userName); } private void dealHpcFile(SubmitHpcTaskRemoteReq submitHpcTaskRemoteReq, String beforeNodeId, String currentNodeId, @@ -175,11 +180,15 @@ public class HpcHandler implements ExecutionHandler,HPCExecu List currentNodeParams = nodeParamMap.get(currentNodeId); if(Objects.equals(executeMode,FlowableConfig.EXECUTE_MODE_AUTO)){ if(CollectionUtils.isEmpty(beforeNodeParams) || CollectionUtils.isEmpty(currentNodeParams)){ + MdcUtil.removeTraceId(); + log.warn("未获取到当前节点或者求解文件节点信息"); throw new RuntimeException("未获取到当前节点或者求解文件节点信息"); } } if(Objects.equals(executeMode,FlowableConfig.EXECUTE_MODE_MANUAL)){ if(CollectionUtils.isEmpty(currentNodeParams)){ + MdcUtil.removeTraceId(); + log.warn("未获取到当前节点信息"); throw new RuntimeException("未获取到当前节点信息"); } } @@ -193,14 +202,15 @@ public class HpcHandler implements ExecutionHandler,HPCExecu // 本地求解文件路径 taskLocalBaseDir String simulationFilePath = simulationBaseDir + beforeNodeJectKey; submitHpcTaskRemoteReq.setSimulationFileLocalPath(simulationFilePath); - CoreLogger.info("simulationFileLocalPath :{} ",simulationBaseDir + beforeNodeJectKey); + log.info("simulationFileLocalPath :{} ",simulationBaseDir + beforeNodeJectKey); } // 手动上传的 if (Objects.equals(executeMode,FlowableConfig.EXECUTE_MODE_MANUAL)) { List masterFilePaths = getFileListFromMap(params, "masterFileRegularStr"); List inPutFilePaths = getFileListFromMap(params, "inputFilesRegularStr"); if(CollectionUtils.isEmpty(masterFilePaths)){ - CoreLogger.warn("hpc executeMode manual,filepath illegal"); + log.warn("hpc executeMode manual,filepath illegal"); + MdcUtil.removeTraceId(); throw new RuntimeException("手动模式求解文件不能为空"); } submitHpcTaskRemoteReq.setManualMasterFilepaths(masterFilePaths); @@ -217,7 +227,7 @@ public class HpcHandler implements ExecutionHandler,HPCExecu submitHpcTaskRemoteReq.setStdoutSpdmMinoFilePath(currentNodeJectKey); // hpc 回传本地文件路径 submitHpcTaskRemoteReq.setStdoutSpdmNasFilePath(simulationBaseDir + currentNodeJectKey); - CoreLogger.info("stdoutSpdmNasFilePath :{} ",simulationBaseDir + currentNodeJectKey); + log.info("stdoutSpdmNasFilePath :{} ",simulationBaseDir + currentNodeJectKey); } /** @@ -260,7 +270,7 @@ public class HpcHandler implements ExecutionHandler,HPCExecu * 将参数Map转换为SubmitHpcTaskRemoteReq对象的工具方法 String command */ private SubmitHpcTaskRemoteReq convertParamsToReq(Map params) { - CoreLogger.error("convertParamsToReq start "); + log.info("convertParamsToReq start "); SubmitHpcTaskRemoteReq req = new SubmitHpcTaskRemoteReq(); if (params == null) { return req; @@ -270,55 +280,23 @@ public class HpcHandler implements ExecutionHandler,HPCExecu // 处理int类型字段,包含空值和非数字的异常处理 try { req.setCoreNum(params.get("coreNum") != null ? Integer.parseInt(params.get("coreNum").toString()) : 0); - } catch (NumberFormatException e) { - CoreLogger.error("coreNum parse error:{},coreNum:{}",e.getMessage(),params.get("coreNum")); + } catch (Exception e) { + log.error("coreNum parse error:{},coreNum:{}",e.getMessage(),params.get("coreNum")); req.setCoreNum(0); } req.setSoftware(params.get("software").toString()); req.setJobType(params.get("jobType").toString()); try { req.setIndependence(params.get("independence") != null ? Integer.parseInt(params.get("independence").toString()) : 0); - } catch (NumberFormatException e) { + } catch (Exception e) { + log.warn("get independence error:{}",e.getMessage()); req.setIndependence(0); } req.setTaskId(params.get("taskId").toString()); req.setTaskName(params.get("taskName").toString()); req.setRunId(params.get("runId").toString()); req.setRunName(params.get("runName").toString()); - // mock 时暂时自己传递,后面根据软件名称查询命令 todo 后面从表配置查询 -// String command =(params.get("command")==null||StringUtils.isBlank(params.get("command").toString()))? -// "\\\\CARSAFE\\share\\solver\\RLithium\\reta.exe -i %s" : params.get("command").toString(); - // 只是测试环境用于兜底mock -// if(StringUtils.isBlank(command)){ -// command = mockCommand; -// } -// if(StringUtils.isBlank(command)){ -// CoreLogger.error("command is empty!!!!!"); -// throw new RuntimeException("command is empty"); -// } -// req.setCommand(command); req.setProjectname(params.get("projectname").toString()); -// req.setFeatchFileType(params.get("featchFileType").toString()); - // req.setBeforeNodeId(params.get("beforeNodeId").toString()); - // 处理commandExpand字段(JSON字符串转Map) - - // 动态命令 -// String commandExpandJson = params.get("commandExpand").toString(); -// if (StringUtils.isNotBlank(commandExpandJson)) { -// try { -// // 将JSON字符串转换为Map -// Map commandExpand = objectMapper.readValue( -// commandExpandJson, -// new TypeReference>() {} -// ); -//// req.setCommandExpand(commandExpand); -// } catch (Exception e) { -// CoreLogger.error("convertParamsToReq error:{},params:{}",e.getMessage(), JSONObject.toJSONString(params)); -// // 如设为null或空Map -//// req.setCommandExpand(new HashMap<>()); -// } -// } - return req; } diff --git a/flowable/src/main/resources/logback.xml b/flowable/src/main/resources/logback.xml new file mode 100644 index 00000000..8a878e0c --- /dev/null +++ b/flowable/src/main/resources/logback.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + + + + + + ${LOG_HOME}/running.log + + ${LOG_HOME}/running.log.%d{yyyy-MM-dd}.%i.log + 30 + 500MB + 10MB + + + ${FILE_LOG_PATTERN} + + + + INFO + + + + + + ${LOG_HOME}/running_debug.log + + ${LOG_HOME}/running_debug.log.%d{yyyy-MM-dd}.%i.log + 30 + 500MB + 10MB + + + ${FILE_LOG_PATTERN} + + + + DEBUG + ACCEPT + DENY + + + + + + ${LOG_HOME}/core.log + + ${LOG_HOME}/core.log.%d{yyyy-MM-dd}.%i.log + 30 + 500MB + 10MB + + + + [%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID:- } [%15.15t] %X{callerInfo} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + + + INFO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file