0

基になる CacheLoaderWriter が失敗した (例外をスローした) 場合に、キャッシュが「期限切れの」データを返すように Ehcache を設定することは可能ですか?

私のテストによると、特定のキャッシュ エントリの有効期限が切れていて、CacheLoaderWriter がデータの読み込みに失敗した場合、キャッシュは null を返します。

ただし、私の場合、期限切れのキャッシュ データを返す方が何もないよりはましです。私が回避策として行っているのは、最新の正常にロードされたデータを CacheLoaderWriter に格納することです。そのため、ロードの新しい実行が失敗した場合は、このコピーを返します。とにかく、CacheLoaderWriter に別のコピーを保持するのではなく、何らかの形で、既にキャッシュにあるデータを返す方が「メモリ効率」が高いと考えてください。

私はehcache 3.4.0を使用しています

        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
            .withCache("myCacheName",
                    CacheConfigurationBuilder.newCacheConfigurationBuilder(Integer.class, String.class, ResourcePoolsBuilder.heap(100))
                            .withExpiry(Expirations.timeToLiveExpiration(Duration.of(4, TimeUnit.HOURS)))
                            .withLoaderWriter(new TestCacheLoaderWriter()))
            .build();
4

1 に答える 1