Кэш с установленным временем истечения в Java

Мое веб-приложение Java (кот) получает все свои данные из базы данных SQL. Однако значительные части этой базы данных только обновляются один раз в день через пакетное задание. Так как запросы на этих таблицах склоняются, действительно являются довольно медленными, я хочу кэшировать результаты.

Прежде, чем прокрутить мое собственное решение, я хотел проверить существующие решения для кэша для Java. Очевидно, я искал stackoverflow и нашел ссылки и рекомендации для ehcache.

Но просматривая документацию кажется, что это только допускает установку времени жизни кэшируемых объектов как продолжительность (например, истеките спустя 1 час, после того, как добавлено), в то время как я хочу истечение на основе установленного времени (например, истеките в 0:30).

Кто-либо знает библиотеку кэша, которая позволяет такое поведение истечения? Или как сделать это с ehcache, если это возможно?

5
задан Pieter 26 February 2010 в 09:32
поделиться

2 ответа

EhCache позволяет программно устанавливать срок действия для отдельного элемента кэша при его создании. Значения, настроенные в ehcache.xml, являются просто значениями по умолчанию.

Если вы знаете конкретное абсолютное время истечения срока действия элемента, то вы можете вычислить разницу в секундах между "тогда" и "сейчас" (т.е. временем, которое вы добавляете в кэш) и установить это значение в качестве продолжительности времени жизни, используя Element.setTimeToLive()

5
ответ дан 14 December 2019 в 13:33
поделиться

Вам нужно полноценное решение для кеширования? Вы используете стандартные карты, а затем у вас есть задание по их очистке в нужное время.

1
ответ дан 14 December 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: