新增:pbs任务提交接入工作流引擎实现
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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任务提交失败");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user