Я использую Guava LoadCache в свой проект, чтобы обрабатывать загрузку кеша thread - {safe, friendly}, и он отлично работает. Однако есть ограничение.
Текущий код, определяющий кеш, выглядит следующим образом:
cache = CacheBuilder.newBuilder().maximumSize(100L).build(new CacheLoader<K, V>()
{
// load() method implemented here
}
Я не указываю время истечения срока действия.
Проблема заключается в том, что в соответствии с значениями ключа некоторые связанные значения могут истекать, а другие - нет. И CacheLoader
не учитывает это, если указать время истечения срока действия, это для каждой записи.
Как бы вы справились с этой проблемой?