たとえば、次の 2 つの有効期限ポリシーを使用してキャッシュを構成したいと考えています。
- 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;
}
ただし、問題は、2 番目の有効期限ポリシーが最初の有効期限ポリシーに取って代わることです。キャッシュが両方の有効期限ポリシーを尊重するように、Ignite キャッシュを構成する方法はありますか? ありがとうございました。
ちなみに、EhCache では、キャッシュを次のように構成することで同じことを実現できます。
<cache name="my-cache-name" ...
timeToIdleSeconds="10" timeToLiveSeconds="30"
...>
</cache>
参考文献: