с жизненным циклом каждого entry и самого кеша на Resource, с разными режимами инвалидации, и дружелюбную к cancellations?
Обвязку вокруг гуавы/каффеина?
Что-то похожее есть https://github.com/evolution-gaming/scache 100% battle-proven, 0% documented.
Похоже на правду, спасибо. Но, судя по коду, загрузка значения в loading cache uncancellable, это не очень хорошо.
да, насколько я помню, так было сдклано by design > possibly not yet loaded https://github.com/evolution-gaming/scache/blob/master/src/main/scala/com/evolutiongaming/scache/Cache.scala#L68
Это другое - когда кто-то дернул getOrUpdate, запустилось асинхронное вычисление значения, и тут вызвали remove. А дальше уже возможны варианты - кенселить загрузку или нет...
Ну вот внутренней F который возвращает remove может указывать на V в процессе загрузки 'not yet loaded'. То есть отменяться эта самая загрузка не может, раз мы обещаем её результат вернуть
Обсуждают сегодня