2016-12-30 1 views
0

Je veux que ma carte en cale sèche soit vide après 5 minutes afin que je puisse y mettre des notices de mise à jour. Mais il n'est pas null et contient toujours des anciens enregistrements. Ci-dessous est mon fichier hazlecast.xml dans le serveur de cache hazelcast.La mise en cale sèche n'est pas vide pour stocker les enregistrements mis à jour

<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> 

Mon code Java est comme:

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); 
     } 

Déclaration de Hazelcast:

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(); 
} 

mise en œuvre de la méthode de getDataFromCache(): -

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' ou' hazlecast.xml'? – noctarius

+0

Pouvez-vous publier la déclaration de 'hazelCastCache' et l'implémentation de la méthode' getDataFromCache' & 'addDataToCache'? –

+0

Salut! Happy New Yr..Actually j'ai pris une autre route, au lieu de dépendre de la politique d'expulsion, je fais la réinitialisation du cache chaque fois qu'il y a une opération CRUD. Mais voudrais toujours savoir pourquoi l'approche ci-dessus ne fonctionne pas. @Desai: J'ai posté le code ci-dessus .. @ noctarius: Its hazelcast.xml –

Répondre

0

Avez-vous essayé hazelMap.get (clé); après 5 minutes?