2016-12-30 1 views
0

5分後にヘイゼルキャストマップを空にして、更新されたDbレコードを入れることができます。しかし、それはnullを取得していないとまだ古いrecords.Belowが含まれてヘイゼルキャストキャッシュサーバー内の私のhazlecast.xmlファイルです。更新されたレコードを格納するためにハゼルキャストキャッシュが空にならない

<map name="CdnConfig"> 
    <in-memory-format>BINARY</in-memory-format> 
    <backup-count>0</backup-count> 
    <async-backup-count>0</async-backup-count> 
    <time-to-live-seconds>300</time-to-live-seconds> 
    <max-idle-seconds>0</max-idle-seconds> 
    <eviction-policy>LRU</eviction-policy> 
    <max-size policy="PER_NODE">1000</max-size> 
    <eviction-percentage>25</eviction-percentage> 
    <min-eviction-check-millis>5000</min-eviction-check-millis> 
</map> 

私のJavaコードは次のようである:hazelcastの

List<CdnConfigDto> dataList=(List<CdnConfigDto>)hazelCastCache.getDataFromCache("CdnConfig", key); 
    if (dataList != null) { 
     LOGGER.info("HazelcastCache conatains records "); 
} else { 
     LOGGER.info("HazelcastCache does not contains records "); 
     dataList = configurationService.getDataFromDB(); 
     hazelCastCache.addDataToCache("CdnConfig", key, dataList); 
     } 

宣言:getDataFromCacheの

private static HazelcastInstance hazelcastInstance; 
    private static HazelCastCache instance = null; 
    public static HazelCastCache getInstance() { 
    return instance; 
} 

public static void initCache() { 
    if (instance == null) { 
     synchronized (HazelCastCache.class) { 
      if (instance == null) { 
       instance = new HazelCastCache(); 
      } 
     } 
    } 
} 

private HazelCastCache() { 
    hazelcastInstance = HazelcastCacheInstance.getHazelcastInstance(); 
} 

メソッドの実装(): -

public Object getDataFromCache(String mapName, Object key) { 
    Object data = null; 
    IMap<Object, Object> hazelMap = hazelcastInstance.getMap(mapName); 
    if (null != hazelMap) { 
     data = hazelMap.get(key); 
    } 

    return data; 

} 
+1

'hazelcast.xml'または' hazlecast.xml'ですか? – noctarius

+0

'hazelCastCache'の宣言と' getDataFromCache'と 'addDataToCache'のメソッド実装を投稿できますか? –

+0

こんにちは! Happy New Yr ..実際に私は別のルートをとった。エビクションポリシーに依存するのではなく、CRUD操作があるときはいつでもキャッシュをリセットしている。しかし、上記のアプローチがなぜ機能していないのかを知りたい。 @Desai:上のコードを投稿しました.. @ noctarius:そのhazelcast.xml –

答えて

0

は、あなたがしようとしましたhazelMap.get(key); 5分後?

関連する問題