Зажечь кеш через пружину. Продолжительность периода динамического выселения
Я использовал Ignite
кэш. Кажется, работает хорошо через весну.
Проблема 1: при перезапуске сервера кеш теряет данные и не восстанавливает.
Решение проблемы 1: используйте db для сохранения всех кэшированных данных.
Проблема 2: период выселения для каждого элемента, загруженного из БД, должен быть различным.
Решение проблемы 2: настроить продолжительность периода вытеснения кеша для каждого элемента???
Следуя документации по зажиганию, я могу настроить период вытеснения для кеша как общий
igniteCacheConfig.setExpiryPolicyFactory(new ExpiryPolicyFactory(duration));
но я не нахожу, как настроить его для каждого элемента в отдельности.
Вопрос
Мне нужна помощь в моем решении для проблемы 2 или, если необходимо, я готов рассмотреть вопрос об изменении решения для проблемы 1: если это поможет лучше решить проблему 2.
1 ответ
Вы можете использовать cache.withExpiryPolicy(), чтобы получить оболочку кэша с конкретным ExpiryPolicy. Эта политика будет использоваться только во время операций с этой оболочкой кэша.
IgniteCache<Object, Object> cache = cache.withExpiryPolicy(new
CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS, 5)));
Вы можете создавать столько оболочек, сколько вам нужно, и помещать /get/etc записи, используя их.
Вот пример, описанный в списке пользователей