gpt4 book ai didi

java - 验证 Apache Commons Pool 2 中空闲对象的时间间隔是多少

转载 作者:行者123 更新时间:2023-12-02 12:23:42 24 4
gpt4 key购买 nike

我使用的是Apache Commons Pool 2,我已将配置testWhileIdle设置为true,这意味着Pool框架将检查空闲对象是否有效。

我会问此检查是否定期进行,如果是,默认间隔是多少,以及如何更改它。

我这么问是因为池中的对象应该定期连接到服务器以保持 Activity 状态,并且我认为池的 validateObject 方法是实现此目的的好地方。

根据@user7294900的评论,有两个配置参数:

  1. timeBetweenEvictionRunsMillis,默认值为-1
  2. minEvictableIdleTimeMillis,默认值为1800*60*30

我有以下两个问题:

  1. 这两个参数有什么区别?
  2. 我将它们都设置为5000,并且池中有8个对象,我在PooledObjectFactory的validateObject方法中打印对象的哈希码,我发现只打印了3个对象的哈希码出,然后不再打印任何消息,看起来 validateObject 不是每 5 秒调用一次,或者对 validateObject 的调用被卡住了?

我解决了问题,请查看评论

最佳答案

您可以使用\update timeBetweenEvictionRunsMillis 来更改空闲验证的时间,请参阅 Tomcat JDBC Connection Pool .

timeBetweenEvictionRunsMillis (int) The number of milliseconds to sleep between runs of the idle connection validation/cleaner thread. This value should not be set under 1 second. It dictates how often we check for idle, abandoned connections, and how often we validate idle connections. The default value is 5000 (5 seconds).

关于java - 验证 Apache Commons Pool 2 中空闲对象的时间间隔是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45587712/

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