2017-05-03 1 views
0

J'utilise set pour mettre des valeurs sur IMap où je définis le ttl. Le problème que j'essaie de résoudre est, quand je lis la clé de la carte, je veux pouvoir obtenir le ttl correspondant. Je suis nouveau à la noisette, j'apprécierais de l'aide.Hazelcast obtenir ttl de clé dans Imap

val testMap: IMap[String, String] = hc.getNativeInstance().getMap(testhcMap) 
if (!testMap.containsKey(key)) { 
    val duration = TimeUnit.HOURS 
    val ttlLen: Long = 1 
    md5Map.set(key: String, event: acp_event, ttlLen: Long, duration: TimeUnit) 
    return true 
} 

L'extrait ci-dessus définit les valeurs. Je veux ajouter un contrôle supplémentaire avant d'insérer des données dans le IMap, je veux vérifier si le ttl est inférieur à une heure et faire une action basée sur cela.

Répondre

0

Vous ne pouvez pas accéder à la valeur TTL. Vous devriez le stocker (le deadline => currentTime + timeout = deadline) en clé ou en valeur avant de le stocker dans Hazelcast. Le plus simple serait d'utiliser une classe semblable à l'enveloppe pour stocker la valeur réelle + date limite.