Могу ли я получить просроченную запись в кеше от прослушивателя сервера Infinispan с помощью @ClientCacheEntryExpired?
Я модифицирую встроенное приложение Infinispan для использования сервера Infinispan и клиента HotRod. Встроенная реализация полагалась на обнаружение событий истечения срока действия кеша в слушателе. Используя событие "pre", я могу прочитать запись с истекшим сроком действия и обновить внешние данные.
Эта функциональность избавила меня от необходимости писать свой собственный reaper, но, насколько я могу судить, реализация клиента HotRod не предоставляет такой возможности. Я могу определить истечение срока действия с помощью @ClientCacheEntryExpired, но, по-видимому, событие срабатывает после того, как запись удаляется из кеша, и единственные данные, доступные слушателю, являются ключом.
Есть ли (простой) способ дублировать встроенное поведение? Или мне придется внедрить свой собственный жнец истечения срока действия?
1 ответ
Вы можете настроить событие (см. Документацию), чтобы включить удаленное значение, но событие всегда будет запускаться после удаления.
Не по теме; сервер Infinispan может обмениваться данными с хранилищем JDBC (документация), и вы можете настроить вытеснение с сохранением обратной записи для хранения ваших данных извне (см. документацию по выселению и записи-Behing).