Spring Infinispan - установка времени истечения для кэшированных объектов - PullRequest
0 голосов
/ 17 мая 2018

В настоящее время мы используем ниже.Он довольно старый, но не может перейти на более новую версию сейчас

`
  <dependency>
     <groupId>org.infinispan</groupId>
     <artifactId>infinispan-spring3</artifactId>
     <version>6.4.0.Final-redhat-4</version>
  </dependency>
  <dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-client-hotrod</artifactId>
    <version>6.4.0.Final-redhat-4</version>
  </dependency>
`

Мы изменили наш код с чего-то с прямой реализацией JDG (как показано ниже) на SpringRemoteCacheManager в файле конфигурации на основе XML и используем кеш Spring: советы по определению методов кеширования, cahce-put, cache-evict.

См. Текущий код, где мы можем добавить время истечения.Мы хотим сделать то же самое с Spring - Infinispan.В Spring - Infinispan мы не пишем код приложения, который помещает / получает объекты в / из кэша, как это обрабатывается аннотациями Spring (@Cacheable / @CachePut). Оцените, если кто-то может предоставить какие-либо указатели

RemoteCache<Object, Object> cache =  jdgRemoteCacheManager.getCache(cacheName);
cache.put(keyName, object, 15, TimeUnit.MINUTES);

1 Ответ

0 голосов
/ 18 мая 2018

К сожалению, поддержка Spring Cache не предоставляет такие методы (см. Javadocs ). Так что, похоже, единственный способ - использовать API RemoteCache, предоставленный Infinispan.

Возможно, вы могли бы реализовать собственную аннотацию @Cacheable и реализовать все необходимые функции. Но это действительно весенний вопрос ...

...