2017-04-12 23 views
0

Ehcache2.XからEhcache3.3.1に移行しているため、実行時にキャッシュの有効期間設定を取得する方法が見つかりません。以前私が使用: cache.getCacheConfiguration().getTimeToLiveSeconds()Ehcache3有効時間設定を取得する

今、それは私がに似て何かを行う必要があるように見えます: cache.getRuntimeConfiguration().getExpiry().getExpiryForCreation().getLength()

しかし、getExpiryForCreation()キー、特定の要素の値のペアを必要とし、そのための時間を返すように見えます素子。

APIまたはドキュメントに何か不足していますか?

答えて

1

ここでは、ehcacheメーリングリストと同じ回答を投稿します。

有効期限は非常に動的になり、指定されたキャッシュされたキーと値を使用して有効期限を選択できます。

Expirations.timeToLiveExpiration(Duration.of(20, TimeUnit.SECONDS)) のように作成したことがわかっている場合は、それは動的ではありません。したがって、作成後にキャッシュエントリの期間を取得するには、 cache.getRuntimeConfiguration().getExpiry().getExpiryForCreation(null, null)を実行します。

動的にTTLを変更する場合は、可能ですが、独自のExpiry実装を提供する必要があります(難しくありません)。 TTL用のセッター。

ただし、新しい値は新しい追加エントリにのみ適用されます。既存のエントリには、TTLが変更されたことは表示されません。これは、エントリが追加されたときの有効期限のタイムスタンプを計算するためです。すべての時間を再適用する代わりに。パフォーマンスの理由から。

関連する問題