Как обрабатывать исключения обновления кэша Google Guava?

В документации Google Guava Cache указано:

Refreshing is not quite the same as eviction. As specified in LoadingCache.refresh(K), refreshing a key loads a new value for the key, possibly asynchronously. The old value (if any) is still returned while the key is being refreshed, in contrast to eviction, which forces retrievals to wait until the value is loaded anew.

If an exception is thrown while refreshing, the old value is kept, and the exception is logged and swallowed.

Это ведение журнала и поглощение исключений действительно плохо в моем случае использования, потому что это означает, что если обновление выдает исключение, пользователи кеша будут продолжать находить устаревшие данные в кеше.

Как я могу убедиться, что если при обновлении возникает исключение, кеш начинает возвращать null или вызывать метод загрузки?

6
задан ams 25 July 2012 в 01:36
поделиться