修改:hpc定时任务更新状态执行优化
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 min(Hikari 默认)
|
||||
# 应用程序尝试从连接池获取一个连接时,等待的最长时间(毫秒)。建议值:30-60秒。
|
||||
connection-timeout: 30000 # 30s
|
||||
master:
|
||||
username: root
|
||||
password: mysql
|
||||
|
||||
Reference in New Issue
Block a user