解决 线程池超时的问题。

This commit is contained in:
zhonghua1
2025-12-21 15:05:20 +08:00
parent 19a5c06a76
commit 00b149974b
2 changed files with 129 additions and 4 deletions

View File

@@ -68,7 +68,8 @@ spring:
database: 0
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://124.221.59.58:3309/ai_smart_badge?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
# 优化JDBC URL添加连接参数以更好地处理连接超时和重连
url: jdbc:mysql://124.221.59.58:3309/ai_smart_badge?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&socketTimeout=60000&connectTimeout=30000&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2
# url: jdbc:mysql://101.35.52.237:13307/ai_smart_badge?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false&maxReconnects=3&initialTimeout=2&connectTimeout=30000&socketTimeout=60000
username: root
# password: cstcom.123!
@@ -82,19 +83,24 @@ spring:
validationTimeout: 5000 # 连接验证的超时时间5秒
# 连接生命周期配置(毫秒)
idleTimeout: 300000 # 空闲连接超时时间5分钟
maxLifetime: 1800000 # 连接最大生存时间30分钟建议小于MySQL wait_timeout
# maxLifetime设置为MySQL wait_timeout的75%28800秒 * 0.75 = 21600秒 = 6小时
# 当前MySQL wait_timeout=28800秒(8小时)设置为6小时(21600000ms)以确保连接在服务器关闭前被回收
# HikariCP官方建议maxLifetime应为数据库wait_timeout的70-80%6小时(75%)是一个理想的平衡值
maxLifetime: 21600000 # 连接最大生存时间6小时wait_timeout=8小时的75%,确保小于服务器超时时间)
# 连接验证配置
connectionTestQuery: "SELECT 1"
# 连接泄漏检测(毫秒)- 如果连接超过此时间未归还,会记录警告
leakDetectionThreshold: 60000 # 60秒
# 保持连接活跃(毫秒)- 定期发送keepalive查询保持连接活跃
keepaliveTime: 300000 # 5分钟
# 缩短keepaliveTime到2分钟更频繁地检测连接是否有效避免使用已关闭的连接
keepaliveTime: 120000 # 2分钟定期发送keepalive查询保持连接活跃
# 连接池名称(便于监控和调试)
poolName: HikariPool-Main
# 连接初始化配置
initializationFailTimeout: 1 # 初始化失败时立即失败,不等待
# 是否允许连接池自动提交
autoCommit: true
# 连接注册JMX可选用于监控
registerMbeans: false
output:
ansi:
enabled: always