16

残りのAPIアプリケーションがあります。API レスポンスのキャッシュと内部メソッドのキャッシュには redis を使用します。redis 接続の場合、API がダウンしています。API をダウンさせる代わりに、redis 接続が失敗したり例外が発生した場合に、redis キャッシュをバイパスしたいと考えています。インターフェイス CacheErrorHandler がありますが、redis 接続の問題ではなく、redis get set 操作の失敗を処理します。Spring 4.1.2 を使用しています。

4

7 に答える 7

7

それで、私は今日別の質問に対処するコア Spring Framework キャッシング抽象化ソースを掘り下げていました. null 値が返されます)。

詳細については、AbstractCacheInvokerのソースを参照してください。

Redis 接続のcache.get(key)障害が原因で例外が発生するため、例外ハンドラーが呼び出されます...

catch (RuntimeException e) {
    getErrorHandler().handleCacheGetError(e, cache, key);
    return null; // If the exception is handled, return a cache miss
}

CacheErrorHandler がキャッシュの「取得」エラーを適切に処理する (そして例外を再スローしない) 場合、キャッシュの「ミス」を示す null 値が返されます。

于 2015-03-30T18:30:01.643 に答える