Я храню в кеше определенные элементы, которые слишком дороги для запроса в реальном времени. Как мне обновить эти элементы кеша? - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно обновлять элемент кеша каждые полчаса, чтобы он не устарел. Во время обновления мне нужно убедиться, что get (element) не возвращает null, потому что я не хочу, чтобы запрос в реальном времени перестраивал элемент, потому что это становится очень дорогостоящим и приведет к тайм-ауту API реального времени. Я работаю в умеренно параллельной среде (~ 5 запросов / с).

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

1 Ответ

1 голос
/ 28 мая 2020

В Ehcache нет встроенной поддержки именно для этого сценария. Вам нужно будет реализовать это самостоятельно, обработав истечение срока и обновив вне кеша.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...