Например, я хотел бы настроить кеш со следующими двумя политиками истечения срока действия:
- TouchedExpiryPolicy
- CreatedExpiryPolicy
Пример кода приведен ниже (Apache Ignite версии 1.5.0.final):
public IgniteCache<String, Object> getOrCreateCache(String cacheName) {
Ignite ignite = Ignition.ignite();
CacheConfiguration<String, Object> cacheCfg = new CacheConfiguration<String, Object>(cacheName);
cacheCfg.setExpiryPolicyFactory(TouchedExpiryPolicy.factoryOf(new Duration(TimeUnit.SECONDS, 10)));
cacheCfg.setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.SECONDS, 30)));
IgniteCache<String, Object> igniteCache = ignite.getOrCreateCache(cacheCfg);
return igniteCache;
}
Однако проблема в том, что вторая политика истечения срока действия заменит первую. Интересно, есть ли способ настроить кеш Ignite так, чтобы он соблюдал обе политики истечения срока действия? Спасибо.
Кстати, в EhCache я могу добиться того же, настроив кеш следующим образом:
<cache name="my-cache-name" ...
timeToIdleSeconds="10" timeToLiveSeconds="30"
...>
</cache>
Использованная литература: