feat: 添加 keep-alive-time 参数

This commit is contained in:
2023-05-31 10:15:01 +08:00
parent 60c40f017d
commit 6f22b30c7f
5 changed files with 25 additions and 3 deletions

View File

@@ -20,6 +20,7 @@ public final class CoreBukkitAPI extends CoreAPI {
if (datasourceConfig == null) {
throw new IllegalArgumentException("配置文件中未找到 datasource 节点!");
}
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName(datasourceConfig.getString("driver"));
hikariConfig.setJdbcUrl(datasourceConfig.getString("url"));
@@ -27,10 +28,12 @@ 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.setKeepaliveTime(datasourceConfig.getLong("keep-alive-time", 5 * 1000));
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);
}

View File

@@ -153,6 +153,12 @@ public abstract class ParentCommand extends ChildCommand {
@Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
if (args.length == 0) {
return childCommands.stream()
.filter(o -> o.hasPermission(sender))
.map(ChildCommand::getName)
.collect(Collectors.toList());
}
for (ChildCommand child : childCommands) {
if (args[0].equalsIgnoreCase(child.getName())) {
return child.onTabComplete(sender, command, alias, Arrays.copyOfRange(args, 1, args.length));

View File

@@ -18,8 +18,13 @@ datasource:
# 推荐值1~3
minimum-idle: 0
# 最大链接数
# 推荐值:不低于5
maximum-pool-size: 10
# 推荐值:不低于3
maximum-pool-size: 3
# 保持连接池可用的间隔
# 除非你的服务器数据库连接经常断开,否则不建议启用该选项
# 单位:毫秒
# 默认值为0禁用
keep-alive-time: 0
# 连接闲置回收时间
# 单位:毫秒
# 推荐值60000010分钟

View File

@@ -21,6 +21,7 @@ public final class CoreBungeeAPI extends CoreAPI {
if (datasourceConfig == null) {
throw new IllegalArgumentException("配置文件中未找到 datasource 节点!");
}
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName(datasourceConfig.getString("driver"));
hikariConfig.setJdbcUrl(datasourceConfig.getString("url"));
@@ -28,10 +29,12 @@ 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.setKeepaliveTime(datasourceConfig.getLong("keep-alive-time", 5 * 1000));
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);
}

View File

@@ -15,7 +15,12 @@ datasource:
minimum-idle: 0
# 最大链接数
# 推荐值不低于5
maximum-pool-size: 10
maximum-pool-size: 5
# 保持连接池可用的间隔
# 除非你的服务器数据库连接经常断开,否则不建议启用该选项
# 单位:毫秒
# 默认值为0禁用
keep-alive-time: 0
# 连接闲置回收时间
# 单位:毫秒
# 推荐值60000010分钟