> getTaskRunVersion(@RequestBody GetRunVersionReq req) {
+ return runService.getTaskRunVersion(req);
+ }
+
+ /**
+ * 获取指定算例的版本结构
+ *
+ * @return
+ */
+ @PostMapping("/getRunVersion")
+ public SdmResponse getRunVersion(@RequestBody GetRunVersionReq req) {
+ return runService.getRunVersion(req);
+ }
+
}
diff --git a/project/src/main/java/com/sdm/project/dao/SimulationRunMapper.java b/project/src/main/java/com/sdm/project/dao/SimulationRunMapper.java
index aebfe60c..d79959fe 100644
--- a/project/src/main/java/com/sdm/project/dao/SimulationRunMapper.java
+++ b/project/src/main/java/com/sdm/project/dao/SimulationRunMapper.java
@@ -3,6 +3,8 @@ package com.sdm.project.dao;
import com.sdm.project.model.entity.SimulationRun;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import java.util.List;
+
/**
*
* Mapper 接口
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface SimulationRunMapper extends BaseMapper {
+ List findRunAndDescendantsIds(String runId);
+
}
diff --git a/project/src/main/java/com/sdm/project/model/req/GetRunVersionReq.java b/project/src/main/java/com/sdm/project/model/req/GetRunVersionReq.java
new file mode 100644
index 00000000..8814ea52
--- /dev/null
+++ b/project/src/main/java/com/sdm/project/model/req/GetRunVersionReq.java
@@ -0,0 +1,20 @@
+package com.sdm.project.model.req;
+
+import lombok.Data;
+
+/**
+ * @Author xuyundi
+ * @Date 2024/3/5
+ * @Note
+ */
+@Data
+public class GetRunVersionReq {
+ /**
+ * 算例uuid
+ */
+ private String runId;
+ /**
+ * 任务uuid
+ */
+ private String taskId;
+}
diff --git a/project/src/main/java/com/sdm/project/model/resp/RunVersionInfoResp.java b/project/src/main/java/com/sdm/project/model/resp/RunVersionInfoResp.java
new file mode 100644
index 00000000..20c0435f
--- /dev/null
+++ b/project/src/main/java/com/sdm/project/model/resp/RunVersionInfoResp.java
@@ -0,0 +1,82 @@
+package com.sdm.project.model.resp;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sdm.project.model.entity.SimulationRun;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class RunVersionInfoResp {
+ private Integer id;
+
+ private String uuid;
+
+ @Schema(description = "算例名称")
+ private String runName;
+
+ @Schema(description = "1:server 2:pbs 3:local only")
+ private Integer type;
+
+ @Schema(description = "流程模板id")
+ private String taskId;
+
+ @Schema(description = "流程模板id")
+ private String flowTemplate;
+
+ @Schema(description = "Run状态 0:未执行 1:执行中 2:完成 3:失败")
+ private Integer status;
+
+ @Schema(description = "Run总共的流程步骤")
+ private Integer totalStep;
+
+ @Schema(description = "当前的流程步骤")
+ private Integer currentStep;
+
+ @Schema(description = "当前的流程步骤名称")
+ private String currentStepName;
+
+ @Schema(description = "Run执行结果 0:gray 1:red 2:yellow 3:green")
+ private Integer achieveStatus;
+
+ @Schema(description = "run描述信息")
+ private String description;
+
+ @Schema(description = "Run对应在文件系统中的路径")
+ private Long folderId;
+
+ @Schema(description = "计算父版本Id")
+ private String parentId;
+
+ @Schema(description = "是否个人模板")
+ private String isPersonalTemplate;
+
+ @Schema(description = "租户id")
+ private Long tenantId;
+
+ @Schema(description = "英文名")
+ private Long englishName;
+
+ @Schema(description= "创建者ID")
+ private Long creator;
+ private String creatorName;
+
+ @Schema(description= "创建时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @Schema(description= "更新者ID")
+ private Long updater;
+ private String updaterName;
+
+ @Schema(description= "创建时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ List children;
+
+}
diff --git a/project/src/main/java/com/sdm/project/service/ISimulationRunService.java b/project/src/main/java/com/sdm/project/service/ISimulationRunService.java
index a83c4210..7bc20be0 100644
--- a/project/src/main/java/com/sdm/project/service/ISimulationRunService.java
+++ b/project/src/main/java/com/sdm/project/service/ISimulationRunService.java
@@ -6,9 +6,13 @@ import com.sdm.common.entity.req.data.QueryDirReq;
import com.sdm.common.entity.req.data.UploadFilesReq;
import com.sdm.project.model.entity.SimulationRun;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.sdm.project.model.req.GetRunVersionReq;
import com.sdm.project.model.req.ProjectTreeTagReq;
import com.sdm.project.model.req.SpdmAddTaskRunReq;
import com.sdm.project.model.req.SpdmTaskRunReq;
+import com.sdm.project.model.resp.RunVersionInfoResp;
+
+import java.util.List;
/**
*
@@ -26,7 +30,7 @@ public interface ISimulationRunService extends IService {
SdmResponse deleteTaskRun(SpdmTaskRunReq req);
- SdmResponse queryTaskRun(SpdmTaskRunReq req);
+ SdmResponse> queryTaskRun(SpdmTaskRunReq req);
SdmResponse createRunDir(CreateDirReq req);
@@ -34,4 +38,8 @@ public interface ISimulationRunService extends IService {
SdmResponse uploadRunFiles(UploadFilesReq req);
+ SdmResponse> getTaskRunVersion(GetRunVersionReq req);
+
+ SdmResponse getRunVersion(GetRunVersionReq req);
+
}
diff --git a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java
index 57c4b94c..13ce02ce 100644
--- a/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java
+++ b/project/src/main/java/com/sdm/project/service/impl/NodeServiceImpl.java
@@ -152,6 +152,12 @@ public class NodeServiceImpl extends ServiceImpl editNodeList = req.getEditNodeList();
if (CollectionUtils.isNotEmpty(editNodeList)) {
for (SpdmNodeDetailReq editNode : editNodeList) {
+ // 项目/阶段名称重名校验
+ if (CollectionUtils.isNotEmpty(this.lambdaQuery().eq(SimulationNode::getNodeName, editNode.getNodeName()).list())) {
+ if (NodeTypeEnum.PROJECT.getValue().equals(editNode.getNodeType())) {
+ return SdmResponse.failed("同名项目已存在,请检查");
+ }
+ }
if (StringUtils.isNotBlank(editNode.getEndTime()) && StringUtils.isNotBlank(editNode.getBeginTime())) {
if (DateUtils.parse(editNode.getEndTime(), DateUtils.PATTERN_DEFAULT).before(DateUtils.parse(editNode.getBeginTime(), DateUtils.PATTERN_DEFAULT))) {
return SdmResponse.failed("计划结束时间不能早于计划开始时间");
diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java
index 351a2e2c..3d941293 100644
--- a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java
+++ b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java
@@ -29,10 +29,8 @@ import com.sdm.project.model.po.NodeAllBase;
import com.sdm.project.model.po.ProjectNodePo;
import com.sdm.project.model.po.RunNodePo;
import com.sdm.project.model.po.TaskNodePo;
-import com.sdm.project.model.req.ProjectTreeReq;
-import com.sdm.project.model.req.ProjectTreeTagReq;
-import com.sdm.project.model.req.SpdmAddTaskRunReq;
-import com.sdm.project.model.req.SpdmTaskRunReq;
+import com.sdm.project.model.req.*;
+import com.sdm.project.model.resp.RunVersionInfoResp;
import com.sdm.project.service.ISimulationPerformanceService;
import com.sdm.project.service.ISimulationRunService;
import com.sdm.project.service.ISimulationTaskMemberService;
@@ -46,10 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
import java.util.stream.Collectors;
import static com.sdm.project.service.impl.NodeServiceImpl.getTagProperty;
@@ -609,4 +604,56 @@ public class SimulationRunServiceImpl extends ServiceImpl> getTaskRunVersion(GetRunVersionReq req) {
+ List runList = this.lambdaQuery().eq(SimulationRun::getTaskId, req.getTaskId()).list();
+ if (CollectionUtils.isNotEmpty(runList)) {
+ List runRespList = runList.stream()
+ .map(source -> {
+ RunVersionInfoResp target = new RunVersionInfoResp();
+ BeanUtils.copyProperties(source, target);
+ return target;
+ }).collect(Collectors.toList());
+ return SdmResponse.success(buildRunTreeWithMap(runRespList));
+ }
+ return SdmResponse.success();
+ }
+
+ @Override
+ public SdmResponse getRunVersion(GetRunVersionReq req) {
+ // 获取目标算例
+ SimulationRun targetRun = this.lambdaQuery().eq(SimulationRun::getUuid, req.getRunId()).one();
+ if (targetRun == null) {
+ return null;
+ }
+ // 获取该算例及其所有子孙节点的ID
+ List relatedRunIds = this.baseMapper.findRunAndDescendantsIds(req.getRunId());
+ // 获取相关算例
+ List relatedRuns = this.lambdaQuery().in(SimulationRun::getUuid, relatedRunIds).list();
+ List relatedRunsResp = relatedRuns.stream()
+ .map(source -> {
+ RunVersionInfoResp target = new RunVersionInfoResp();
+ BeanUtils.copyProperties(source, target);
+ return target;
+ }).collect(Collectors.toList());
+ // 构建子树
+ buildRunTreeWithMap(relatedRunsResp);
+ return SdmResponse.success(relatedRunsResp.stream().filter(i -> StringUtils.equals(i.getUuid(), targetRun.getUuid())).findFirst().get());
+ }
+
+ private List buildRunTreeWithMap(List allRuns) {
+ // 按父节点ID分组
+ Map> childrenMap = allRuns.stream().filter(run -> StringUtils.isNotEmpty(run.getParentId()))
+ .collect(Collectors.groupingBy(RunVersionInfoResp::getParentId));
+ // 设置每个节点的子节点
+ allRuns.forEach(run -> {
+ List children = childrenMap.getOrDefault(run.getUuid(), new ArrayList<>());
+ // 对子节点排序
+ children.sort(Comparator.comparing(RunVersionInfoResp::getCreateTime));
+ run.setChildren(children);
+ });
+ // 返回根节点
+ return allRuns.stream().filter(run -> StringUtils.isEmpty(run.getParentId())).collect(Collectors.toList());
+ }
+
}
diff --git a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java
index 06d7814e..b7cf03e6 100644
--- a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java
+++ b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java
@@ -606,6 +606,9 @@ public class TaskServiceImpl implements ITaskService {
public SdmResponse operation(SpdmTaskOpr taskOpr) {
if (CollectionUtils.isNotEmpty(taskOpr.getTaskIds()) && ObjectUtils.isNotEmpty(taskOpr.getReq())) {
SpdmTaskOprReq req = taskOpr.getReq();
+ if (req.getProgress() > 100) {
+ return SdmResponse.failed("任务进度超过100%,请核查");
+ }
for (String taskId : taskOpr.getTaskIds()) {
req.setTaskId(taskId);
if (simulationTaskService.lambdaQuery().eq(SimulationTask::getUuid, taskId).count() <= 0) {
diff --git a/project/src/main/resources/application-dev.yml b/project/src/main/resources/application-dev.yml
index 526caa83..e3b64de8 100644
--- a/project/src/main/resources/application-dev.yml
+++ b/project/src/main/resources/application-dev.yml
@@ -10,11 +10,16 @@ spring:
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:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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
diff --git a/project/src/main/resources/application-local.yml b/project/src/main/resources/application-local.yml
index 2fc986d2..d20ac8f9 100644
--- a/project/src/main/resources/application-local.yml
+++ b/project/src/main/resources/application-local.yml
@@ -10,11 +10,16 @@ spring:
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:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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
diff --git a/project/src/main/resources/application-prod.yml b/project/src/main/resources/application-prod.yml
index 00e14878..1b12e489 100644
--- a/project/src/main/resources/application-prod.yml
+++ b/project/src/main/resources/application-prod.yml
@@ -6,11 +6,16 @@ spring:
name: project
datasource:
hikari:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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: ENC(+QKYnI6gAYu1SbLaZQTkZA==)
diff --git a/project/src/main/resources/application-test.yml b/project/src/main/resources/application-test.yml
index a2b5bf35..7b8a2cf9 100644
--- a/project/src/main/resources/application-test.yml
+++ b/project/src/main/resources/application-test.yml
@@ -6,11 +6,16 @@ spring:
name: project
datasource:
hikari:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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: ENC(+QKYnI6gAYu1SbLaZQTkZA==)
diff --git a/project/src/main/resources/mapper/SimulationRunMapper.xml b/project/src/main/resources/mapper/SimulationRunMapper.xml
index e5221776..ef4269e6 100644
--- a/project/src/main/resources/mapper/SimulationRunMapper.xml
+++ b/project/src/main/resources/mapper/SimulationRunMapper.xml
@@ -2,4 +2,14 @@
+
+
diff --git a/submit/src/main/resources/logback.xml b/submit/src/main/resources/logback.xml
index b235cae9..03bfc928 100644
--- a/submit/src/main/resources/logback.xml
+++ b/submit/src/main/resources/logback.xml
@@ -126,6 +126,6 @@
-
-
+
+
\ No newline at end of file
diff --git a/system/src/main/resources/application-dev.yml b/system/src/main/resources/application-dev.yml
index bf521dda..62973374 100644
--- a/system/src/main/resources/application-dev.yml
+++ b/system/src/main/resources/application-dev.yml
@@ -10,11 +10,16 @@ spring:
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:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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
diff --git a/system/src/main/resources/application-local.yml b/system/src/main/resources/application-local.yml
index 0922cd12..ae6a15a3 100644
--- a/system/src/main/resources/application-local.yml
+++ b/system/src/main/resources/application-local.yml
@@ -10,11 +10,16 @@ spring:
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:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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
diff --git a/system/src/main/resources/application-prod.yml b/system/src/main/resources/application-prod.yml
index 4424f308..0d2c944c 100644
--- a/system/src/main/resources/application-prod.yml
+++ b/system/src/main/resources/application-prod.yml
@@ -6,11 +6,16 @@ spring:
name: system
datasource:
hikari:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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: ENC(+QKYnI6gAYu1SbLaZQTkZA==)
diff --git a/system/src/main/resources/application-test.yml b/system/src/main/resources/application-test.yml
index b2cabf19..69dfaaaf 100644
--- a/system/src/main/resources/application-test.yml
+++ b/system/src/main/resources/application-test.yml
@@ -6,11 +6,16 @@ spring:
name: system
datasource:
hikari:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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: ENC(+QKYnI6gAYu1SbLaZQTkZA==)
diff --git a/system/src/main/resources/logback.xml b/system/src/main/resources/logback.xml
index b98e38de..ee94afc9 100644
--- a/system/src/main/resources/logback.xml
+++ b/system/src/main/resources/logback.xml
@@ -114,6 +114,6 @@
-
-
+
+
\ No newline at end of file
diff --git a/task/src/main/resources/application-dev.yml b/task/src/main/resources/application-dev.yml
index 7291c0bf..05c609d9 100644
--- a/task/src/main/resources/application-dev.yml
+++ b/task/src/main/resources/application-dev.yml
@@ -11,11 +11,16 @@ spring:
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:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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
diff --git a/task/src/main/resources/application-local.yml b/task/src/main/resources/application-local.yml
index 62b2a61e..124898c7 100644
--- a/task/src/main/resources/application-local.yml
+++ b/task/src/main/resources/application-local.yml
@@ -10,11 +10,16 @@ spring:
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:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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: 123456
diff --git a/task/src/main/resources/application-prod.yml b/task/src/main/resources/application-prod.yml
index aa950593..355c5369 100644
--- a/task/src/main/resources/application-prod.yml
+++ b/task/src/main/resources/application-prod.yml
@@ -12,11 +12,16 @@ spring:
# jdbc-url: jdbc:mysql://10.30.10.210:3306/spdm?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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
slave:
username: root
password: ENC(+QKYnI6gAYu1SbLaZQTkZA==)
diff --git a/task/src/main/resources/application-test.yml b/task/src/main/resources/application-test.yml
index 875a1838..c81d5755 100644
--- a/task/src/main/resources/application-test.yml
+++ b/task/src/main/resources/application-test.yml
@@ -12,11 +12,16 @@ spring:
# jdbc-url: jdbc:mysql://10.30.10.210:3306/spdm?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
hikari:
- maximum-pool-size: 450 # 连接池最大连接数(关键!)
- minimum-idle: 50 # 最小空闲连接数(与最大一致,避免频繁创建销毁)
- idle-timeout: 300000 # 空闲连接超时时间(5分钟)
- max-lifetime: 600000 # 连接最大存活时间(10分钟)
- connection-timeout: 30000 # 获取连接超时时间(30秒,避免线程阻塞)
+ # 设置连接池能够容纳的最大连接数。建议值: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
slave:
username: root
password: ENC(+QKYnI6gAYu1SbLaZQTkZA==)
diff --git a/task/src/main/resources/logback.xml b/task/src/main/resources/logback.xml
index 78413dce..c4f7c12e 100644
--- a/task/src/main/resources/logback.xml
+++ b/task/src/main/resources/logback.xml
@@ -115,7 +115,7 @@
-
-
+
+
\ No newline at end of file