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;
}
'hazelcast.xml' ou' hazlecast.xml'? – noctarius
Pouvez-vous publier la déclaration de 'hazelCastCache' et l'implémentation de la méthode' getDataFromCache' & 'addDataToCache'? –
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 –