1
我使用Apache Commons Pool 2
,我已將配置testWhileIdle
設置爲true,這意味着Pool框架將檢查它們是否有效的空閒對象。什麼時間間隔來驗證Apache Commons Pool中的空閒對象2
我會問是否發生這種週期性的檢查,如果是這樣,什麼是默認的時間間隔,以及如何我可以改變它。
我這樣問是因爲池中的對象應該定期連接到服務器以保持活力,我認爲pool的validateObject
方法是實現這一點的好地方。
每@ user7294900的評論中,有兩個配置參數:
timeBetweenEvictionRunsMillis
,默認值是-1minEvictableIdleTimeMillis
,默認值是1800 *我有以下60 * 30
兩個問題:
- 這兩個參數有什麼區別ERS?
- 我將它們都設置爲5000,並且在池中有8個對象,我在PooledObjectFactory的
validateObject
方法中打印對象的哈希碼,發現只有3個對象的哈希碼已經打印出來,消息再次打印,看起來validateObject
的不是每5秒鐘調用一次,或者對validateObject
的呼叫卡住了?
我想通了這個問題,請查看評論
感謝@ user7294900爲你回答,我每次更新您的意見,我的問題,你可以請大家看看? – Tom
對不起,我想通了這個問題...'timeBetweenEvictionRunsMillis'是安排任務,以驗證對象的間隔,而'minEvictableIdleTimeMillis'是從pool.Since被驅逐的兩個參數是相同的空閒時間,似乎逐出勝利 – Tom
minEvictableIdleTimeMillis的默認值爲1000 * 60 * 30 –