新增:pbs任务提交创建工作目录

This commit is contained in:
yangyang01000846
2025-11-26 19:29:35 +08:00
parent de9c39f2f3
commit 8b299225ad
4 changed files with 59 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ import com.sdm.common.utils.HpcCommandResulParseUtil;
import com.sdm.pbs.service.HpcInstructionService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -120,6 +121,14 @@ public class HpcInstructionServiceImpl implements HpcInstructionService {
String prefixStr = HpcCommandBuilderUtil.initAddJobPrefixStr(req.getJobId());
AddJobParam addJobParam = new AddJobParam();
BeanUtils.copyProperties(req, addJobParam);
String targetWorkDir = addJobParam.getWorkdir() + "\\" + req.getJobId();
Pair<Boolean, String> workDirPair = createDirIfNotExist(targetWorkDir);
if(!workDirPair.getLeft()){
AddJobResp addJobResp=new AddJobResp();
addJobResp.setErrMsg(workDirPair.getRight());
return SdmResponse.failed(workDirPair.getRight(),addJobResp);
}
addJobParam.setWorkdir(targetWorkDir);
String addJobCommand = HpcCommandBuilderUtil.buildHpcCommandStr(prefixStr, addJobParam, req.getCommand());
String result = hpcCommandExcuteUtil.excuteCmd(addJobCommand,hpcExcuteWay);
AddJobResp addJobResp = HpcCommandResulParseUtil.parseJoAddResult(result);
@@ -171,7 +180,17 @@ public class HpcInstructionServiceImpl implements HpcInstructionService {
}
// 2.job add
addJobReq.setJobId(jobId);
addJobReq.setWorkdir( addJobReq.getWorkdir()+"\\"+jobId);
// String targetWorkDir = addJobReq.getWorkdir() + "\\" + jobId;
// Pair<Boolean, String> workDirPair = createDirIfNotExist(targetWorkDir);
// if(!workDirPair.getLeft()){
// mergeSubmitResp.setSubmit(false);
// String errMsg = "job add workDir create error";
// mergeSubmitResp.setErrMsg(workDirPair.getRight());
// // 错误的指令返回
// mergeSubmitResp.setHpcCommand(targetWorkDir);
// return SdmResponse.failed(errMsg,mergeSubmitResp);
// }
// addJobReq.setWorkdir(targetWorkDir);
SdmResponse<AddJobResp> addResponse = jobAdd(addJobReq);
String taskId = "";
if(addResponse.isSuccess()&&!Objects.isNull(addResponse.getData())&&
@@ -529,5 +548,10 @@ public class HpcInstructionServiceImpl implements HpcInstructionService {
}
}
private Pair<Boolean, String> createDirIfNotExist(String targetDir) {
Pair<Boolean, String> pair= hpcCommandExcuteUtil.createDirIfNotExist(targetDir);
return pair;
}
}

View File

@@ -54,7 +54,7 @@ public class IPbsHpcServiceImpl implements IPbsService {
// todo
addJobReq.setStdout("1126.out");
// todo
addJobReq.setWorkdir("\\\\CARSAFE\\share\\testproject\\testjob\\testtask");
addJobReq.setWorkdir("\\\\CARSAFE\\share\\spdm");
// todo
addJobReq.setCommand(req.getCommand());
SubmitHpcJobReq submitHpcJobReq = new SubmitHpcJobReq();

View File

@@ -105,6 +105,7 @@ hpc:
# remote hpc借助工具http远程调用local:该服务和hpc部署在同一机器
excuteWay: remote
remoteCmdUrl: http://192.168.65.55:9097/doProcess
remoteCreateDirUrl: http://192.168.65.55:9097/createDir
#logging:
# config: ./config/logback.xml