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

Я использовал 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 записи, используя их.

Вот пример, описанный в списке пользователей

Другие вопросы по тегам