2016-07-13 36 views
1

私はSpring-Data-Redisを使ってデータをキャッシュするプロジェクトがあります。 Spring-Data-Redisは、Bean Configurationを使用してJedisとセットアップされています。JedisPoolConfigパラメータの使用方法* blockWhenExhausted *

JedisPoolConfigのパラメータを探して、自分のキャッシングとアプリケーションの動作を制御するように変更できます。

設定可能なプロパティの一部であるプロパティblockWhenExhaustedの使用方法を知りたいと思います。 デフォルト値はtrueと言われていますが、このデフォルト値はどのような動作をしますか? 値をfalseに変更すると、これはどのような動作になりますか?

答えて

1

値はBaseGenericObjectPool.getBlockWhenExhausted()が真である場合にのみ適用される特定の待機時間を用いて、プールからオブジェクトを借用GenericObjectPool.borrowObject(long borrowMaxWaitMillis)

の挙動を変化させます。あなたはfalseblockWhenExhaustedを設定するとborrowMaxWaitMillisで指定した時間が使用されないことを意味し、利用可能なプールからアイドル状態のjedis接続があるまでborrowObjectコールがブロックされます

プールが(使用可能なアイドルの場合、新しいものを作成するために、無容量)疲れている場合は、この方法は、いずれかの意志ブロック(BaseGenericObjectPool.getBlockWhenExhausted()がtrueの場合)、またはBaseGenericObjectPool.getBlockWhenExhausted場合((はNoSuchElementExceptionを投げます))

しかし falseです興味深いことに、私はJedisPool実装が実際にborrowObject(long borrowMaxWaitMillis)メソッドを使用していることを見ることができませんでした。 getResource (in the version 3.0.0-SNAPSHOT)の間にborrowObject(パラメータなし)が呼び出されることがわかりました。したがって、記述された動作がJedisPoolにも当てはまるかどうかはわかりません。

関連する問題