diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/api/CoreBukkitAPI.java b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/api/CoreBukkitAPI.java index b4cd3ba..df84997 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/api/CoreBukkitAPI.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/api/CoreBukkitAPI.java @@ -27,8 +27,10 @@ public final class CoreBukkitAPI extends CoreAPI { hikariConfig.setPassword(datasourceConfig.getString("password")); hikariConfig.setMaximumPoolSize(datasourceConfig.getInt("maximum-pool-size", 3)); hikariConfig.setMinimumIdle(datasourceConfig.getInt("minimum-idle", 1)); - hikariConfig.setIdleTimeout(datasourceConfig.getLong("idle-timeout", 5 * 60 * 1000)); - hikariConfig.setMaxLifetime(datasourceConfig.getLong("max-lifetime", 0)); + hikariConfig.setIdleTimeout(datasourceConfig.getLong("idle-timeout", 10 * 60 * 1000)); + hikariConfig.setMaxLifetime(datasourceConfig.getLong("max-lifetime", 30 * 60 * 1000)); + hikariConfig.setValidationTimeout(datasourceConfig.getLong("validation-timeout", 5000)); + hikariConfig.setPoolName("HamsterCore-Pool"); datasource = new HikariDataSource(hikariConfig); } diff --git a/hamster-core-bukkit/src/main/resources/config.yml b/hamster-core-bukkit/src/main/resources/config.yml index 4442051..eb59863 100644 --- a/hamster-core-bukkit/src/main/resources/config.yml +++ b/hamster-core-bukkit/src/main/resources/config.yml @@ -17,13 +17,15 @@ datasource: maximum-pool-size: 10 # 最小链接数 minimum-idle: 1 - # 超时回收时间 + # 连接闲置回收时间 # 单位:毫秒 - idle-timeout: 300000 + idle-timeout: 600000 # 链接最长存活时间 # 单位:毫秒 - # 建议设置为比数据库上的 wait_timeout 参数少 30 秒 max-lifetime: 1800000 + # 验证连接存活的超时时间 + # 单位:毫秒 + validation-timeout: 5000 messages: COMMAND_NOT_FOUND: diff --git a/hamster-core-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/CoreBungeeAPI.java b/hamster-core-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/CoreBungeeAPI.java index b554fe2..49adedb 100644 --- a/hamster-core-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/CoreBungeeAPI.java +++ b/hamster-core-bungeecord/src/main/java/cn/hamster3/mc/plugin/core/bungee/api/CoreBungeeAPI.java @@ -19,6 +19,9 @@ public final class CoreBungeeAPI extends CoreAPI { Configuration config = BungeeCordUtils.getPluginConfig(plugin); Configuration datasourceConfig = config.getSection("datasource"); + if (datasourceConfig == null) { + throw new IllegalArgumentException("配置文件中未找到 datasource 节点!"); + } HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setDriverClassName(datasourceConfig.getString("driver")); hikariConfig.setJdbcUrl(datasourceConfig.getString("url")); @@ -26,8 +29,10 @@ public final class CoreBungeeAPI extends CoreAPI { hikariConfig.setPassword(datasourceConfig.getString("password")); hikariConfig.setMaximumPoolSize(datasourceConfig.getInt("maximum-pool-size", 3)); hikariConfig.setMinimumIdle(datasourceConfig.getInt("minimum-idle", 1)); - hikariConfig.setIdleTimeout(datasourceConfig.getLong("idle-timeout", 5 * 60 * 1000)); - hikariConfig.setMaxLifetime(datasourceConfig.getLong("max-lifetime", 0)); + hikariConfig.setIdleTimeout(datasourceConfig.getLong("idle-timeout", 10 * 60 * 1000)); + hikariConfig.setMaxLifetime(datasourceConfig.getLong("max-lifetime", 30 * 60 * 1000)); + hikariConfig.setValidationTimeout(datasourceConfig.getLong("validation-timeout", 5000)); + hikariConfig.setPoolName("HamsterCore-Pool"); datasource = new HikariDataSource(hikariConfig); } diff --git a/hamster-core-bungeecord/src/main/resources/config.yml b/hamster-core-bungeecord/src/main/resources/config.yml index 8c440e9..2632f34 100644 --- a/hamster-core-bungeecord/src/main/resources/config.yml +++ b/hamster-core-bungeecord/src/main/resources/config.yml @@ -17,10 +17,12 @@ datasource: maximum-pool-size: 10 # 最小链接数 minimum-idle: 1 - # 超时回收时间 + # 连接闲置回收时间 # 单位:毫秒 - idle-timeout: 300000 + idle-timeout: 600000 # 链接最长存活时间 # 单位:毫秒 - # 建议设置为比数据库上的 wait_timeout 参数少 30 秒 max-lifetime: 1800000 + # 验证连接存活的超时时间 + # 单位:毫秒 + validation-timeout: 5000