定义PBS接口

This commit is contained in:
daiqy88
2025-11-25 18:24:29 +08:00
parent 7e7f970648
commit 167a519b80
5 changed files with 176 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
package com.sdm.pbs.model.bo;
import io.swagger.v3.oas.annotations.media.Schema;
public class HpcJobStatusInfo {
@Schema(description = "作业ID")
public String jobId;
@Schema(description = "作业名称")
public String jobName;
@Schema(description = "作业状态 1pending 2submitting 3running 4succeed 5failed")
public int jobStatus;
@Schema(description = "作业所占核数")
public int coreNum;
@Schema(description = "作业占用内存大小")
public int memory;
@Schema(description = "作业开始时间")
public String startTime;
@Schema(description = "作业结束时间")
public String endTime;
@Schema(description = "作业提交时间")
public String submitTime;
@Schema(description = "作业计算软件")
public String software;
}

View File

@@ -0,0 +1,25 @@
package com.sdm.pbs.model.bo;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.ArrayList;
import java.util.List;
public class HpcNodeInfo {
@Schema(description = "计算节点名称")
public String nodeName;
@Schema(description = "计算节点状态 0down 1running 2suspend")
public int nodeStatus;
@Schema(description = "节点总核数")
public int totalCores;
@Schema(description = "可用核数")
public int freeCores;
@Schema(description = "已用核数")
public int usedCores;
}

View File

@@ -0,0 +1,21 @@
package com.sdm.pbs.model.bo;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.ArrayList;
import java.util.List;
public class HpcResouceInfo {
@Schema(description = "资源总核数")
public int totalCores;
@Schema(description = "已用核数")
public int usedCores;
@Schema(description = "空闲核数")
public int freeCores;
@Schema(description = "节点核数信息")
private List<HpcNodeInfo> nodeList = new ArrayList<>();
}

View File

@@ -0,0 +1,42 @@
package com.sdm.pbs.model.req;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.ArrayList;
import java.util.List;
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;
}

View File

@@ -0,0 +1,55 @@
package com.sdm.pbs.service;
import com.sdm.common.common.SdmResponse;
import com.sdm.pbs.model.bo.FileBaseInfo;
import com.sdm.pbs.model.bo.HpcJobStatusInfo;
import com.sdm.pbs.model.bo.HpcResouceInfo;
import com.sdm.pbs.model.req.SubmitHpcTaskReq;
import java.util.List;
public interface IPbsService {
/**
* 查询HPC资源信息
* @return
*/
SdmResponse<HpcResouceInfo> queryHpcResource();
/**
* 提交HPC作业
* @param req
* @return 返回jobId
*/
SdmResponse<String> submitHpcJob(SubmitHpcTaskReq req);
/**
* 停止HPC作业
* @param jobId
* @return
*/
SdmResponse<Boolean> stopHpcJob(String jobId);
/**
* 作业状态查询
* @param jobId
* @return
*/
SdmResponse<HpcJobStatusInfo> getJobStatus(String jobId);
/**
* 获取计算文件结果目录文件信息
* @param jobId
* @return
*/
SdmResponse<List<FileBaseInfo>> getJobResultFiles(String jobId);
/**
* 下载计算结果文件
* @param jobId
* @param fileName
* @return
*/
SdmResponse downloadFile(String jobId, String fileName);
}