gpt4 book ai didi

connection-timeout - 在运行时修改 Hikari 属性

转载 作者:行者123 更新时间:2023-12-01 22:09:28 24 4
gpt4 key购买 nike

我在哪里可以找到有关可以在运行时修改的 Hikari 属性的信息?我尝试修改connectionTimeout。我可以做到,它将在 HikariDataSource 中无一异常(exception)地被修改(通过设置然后获取属性进行检查)但是它没有任何效果。如果我最初这样做:

HikariConfig config = new HikariConfig();
config.setConnectionTimeout(12000);
HikariDataSource pool = new HikariDataSource(config);

后来我做了

config.setConnectionTimeout(5000);

Hikari 尝试建立新连接的时间为 12 秒,而不是 5 秒。

或者有没有办法改变这个值呢?是否有其他属性具有相同的行为?

最佳答案

您可以通过 MX bean 完成此操作,但不需要使用 JMX

public void updateTimeout(final long connectionTimeoutMs, final HikariDataSource ds) {
var poolBean = ds.getHikariPoolMXBean();
var configBean = ds.getHikariConfigMXBean();

poolBean.suspendPool(); // Block new connections being leased

configBean.setConnectionTimeout(connectionTimeoutMs);

poolBean.softEvictConnections(); // Close unused cnxns & mark open ones for disposal
poolBean.resumePool(); // Re-enable connections
}

请记住,您需要在初始配置中启用池暂停

var config = new HikariConfig();
...
config.setAllowPoolSuspension(true);

关于connection-timeout - 在运行时修改 Hikari 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com