修改:hpc定时任务更新状态执行优化

This commit is contained in:
yangyang01000846
2025-12-04 10:58:59 +08:00
parent a4c128106c
commit 7e0b73a584
5 changed files with 25 additions and 5 deletions

View File

@@ -34,12 +34,18 @@ public class HpcJobStatusScheduleExcutor implements Runnable{
// Configuring,Queued,Running,Canceled,Finished,Failed
// 查询 jobId非空 jobStatus非 Canceled,Failed 数据, Finished,文件可能传完,可能没有传递完
List<SimulationJob> list = simulationJobService.lambdaQuery()
.select(SimulationJob::getId,
SimulationJob::getJobName,
SimulationJob::getTaskId,
SimulationJob::getRunId,
SimulationJob::getJobId,
SimulationJob::getJobStatus)
.isNotNull(SimulationJob::getJobId)
.notIn(SimulationJob::getJobStatus, "Canceled", "Failed")
// 回传文件状态
.notIn(SimulationJob::getFileStatus, "generating", "uploading")
// 非上传中的,非回传结束的。JobStatus 结束 通知 uploading 只会有一次,回传失败后,人工改表修复
.notIn(SimulationJob::getFileStatus, "uploading","finished")
.list();
if(CollectionUtils.isNotEmpty(list)){
if(CollectionUtils.isEmpty(list)){
log.info("HpcJobStatus query db data null");
return;
}

View File

@@ -31,7 +31,7 @@ public class FinishedStatusHandler implements JobStatusHandler {
try {
// 过程结束修改
SimulationJob newDbJob = simulationJobService.lambdaQuery().eq(SimulationJob::getId, simJob.getId()).one();
newDbJob.setFileStatus(statusInfo.getJobStatus());
newDbJob.setJobStatus(statusInfo.getJobStatus());
newDbJob.setStartTime(statusInfo.getStartTime());
newDbJob.setEndTime(statusInfo.getEndTime());
newDbJob.setNodeName(statusInfo.getAllocatedNodes());

View File

@@ -24,7 +24,8 @@ public class ProcessStatusHandler implements JobStatusHandler{
try {
// 过程中状态修改
SimulationJob newDbJob = simulationJobService.lambdaQuery().eq(SimulationJob::getId, simJob.getId()).one();
newDbJob.setFileStatus(statusInfo.getJobStatus());
newDbJob.setJobStatus(statusInfo.getJobStatus());
newDbJob.setFileStatus("generating");
newDbJob.setStartTime(statusInfo.getStartTime());
newDbJob.setEndTime(statusInfo.getEndTime());
newDbJob.setNodeName(statusInfo.getAllocatedNodes());

View File

@@ -7,6 +7,7 @@ import com.github.pagehelper.PageInfo;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.resp.PageDataResp;
import com.sdm.common.entity.resp.pbs.hpc.FileNodeInfo;
import com.sdm.common.log.CoreLogger;
import com.sdm.common.utils.HpcCommandExcuteUtil;
import com.sdm.common.utils.PageUtils;
import com.sdm.pbs.model.bo.HpcJobStatusInfo;
@@ -289,6 +290,7 @@ public class PbsServiceDecorator implements IPbsServiceDecorator {
public SdmResponse<Boolean> jobFileCallback(JobFileCallBackReq req) {
CoreLogger.info("hpc jobFileCallback params:{}",JSONObject.toJSONString(req));
if(!Objects.isNull(req)&&Objects.equals(req.getUploadResult(),"Y")) {
// 回传成功
SimulationJob newDbJob = simulationJobService.lambdaQuery().eq(SimulationJob::getJobId, req.getJobId()).one();

View File

@@ -9,6 +9,17 @@ spring:
password: mysql
jdbc-url: jdbc:mysql://192.168.65.161:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
# 设置连接池能够容纳的最大连接数。建议值CPU核心数 * 2 + 有效磁盘I/O数。一个常见的经验值是 10-20。
maximum-pool-size: 20
# 连接池在空闲时保持的最小连接数。
minimum-idle: 5
# 一个连接在被标记为空闲之前可以保持空闲状态的最长时间(毫秒)。当连接的空闲时间超过此值后,它可能会被连接池 evict驱逐
idle-timeout: 60000 # 1 min
# 一个连接从被创建开始其生命周期的最大时长毫秒。HikariCP的默认值就是30分钟这是一个非常合理的设置。
max-lifetime: 1800000 # 30 minHikari 默认)
# 应用程序尝试从连接池获取一个连接时等待的最长时间毫秒。建议值30-60秒。
connection-timeout: 30000 # 30s
master:
username: root
password: mysql