新增:pbs任务提交接入工作流引擎实现

This commit is contained in:
yangyang01000846
2025-11-27 15:36:42 +08:00
parent 9b51f1c79f
commit b75cfaa338
13 changed files with 153 additions and 24 deletions

View File

@@ -0,0 +1,15 @@
package com.sdm.common.config;
import feign.Request;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class LongTimeRespFeignConfig {
@Bean
public Request.Options pbsFeignOptions() {
// 根据你的HPC任务实际需要调整超时时间
// 5秒连接5分钟读取
return new Request.Options(5000, 300000);
}
}

View File

@@ -0,0 +1,50 @@
package com.sdm.common.entity.req.pbs;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class SubmitHpcTaskReq {
@Schema(description = "计算任务名称")
public String jobName;
@Schema(description = "计算所需要核数")
public int coreNum;
@Schema(description = "计算软件")
public String software;
@Schema(description = "计算任务类型")
public String jobType;
@Schema(description = "计算任务是否独立存在 0非独立任务 1独立任务")
public int independence;
@Schema(description = "求解文件")
public List<String> inputFiles = new ArrayList<>();
@Schema(description = "计算主文件")
public String masterFile;
@Schema(description = "计算任务所属任务ID")
public String taskId;
@Schema(description = "计算任务所属任务名称")
public String taskName;
@Schema(description = "计算任务所属算力ID")
public String runId;
@Schema(description = "计算任务所属算力名称")
public String runName;
@Schema(description = "执行的命令")
public String command;
@Schema(description = "任务所属项目")
public String projectname;
}

View File

@@ -0,0 +1,31 @@
package com.sdm.common.feign.impl.pbs;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.req.pbs.SubmitHpcTaskReq;
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;
@Slf4j
@Component
public class TaskClientFeignClientImpl implements ITaskFeignClient {
@Autowired
private ITaskFeignClient taskFeignClient;
@Override
public SdmResponse<String> submitHpcJob(SubmitHpcTaskReq req) {
SdmResponse<String> response;
try {
response = taskFeignClient.submitHpcJob(req);
return response;
} catch (Exception e) {
CoreLogger.error("SubmitHpcJob Exception:{}", e.getMessage());
return SdmResponse.failed("Hpc任务提交失败");
}
}
}

View File

@@ -0,0 +1,21 @@
package com.sdm.common.feign.inter.pbs;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.config.LongTimeRespFeignConfig;
import com.sdm.common.entity.req.pbs.SubmitHpcTaskReq;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(
name = "pbs",
configuration = LongTimeRespFeignConfig.class
)
public interface ITaskFeignClient {
// "作业提交"
@PostMapping("/pbs/submitHpcJob")
SdmResponse<String> submitHpcJob(@RequestBody SubmitHpcTaskReq req);
}