2017-04-02 6 views
0

J'ai l'exigence où j'ai un flux continu de signaux et je veux être informé s'il n'y a pas eu de signal pendant un certain laps de temps.Get Hazelcast EntryExpiredListener seulement d'un nœud (pas tous les réplicas)

maintenant j'ajoute chaque signal à une carte Hazelcast et si elle n'a pas été mise à jour pendant un certain laps de temps, le Hazelcast EntryExpiredListener se déclenche. Jusqu'à présent, tout va bien, mais le EntryExpiredListener est appelé pour chaque réplica, donc je suis notifié N fois.

Existe-t-il un moyen d'être uniquement informé dans le nœud maître ou dans une seule réplique? Je suis conscient que j'abuse un peu de HZ et je suis ouvert à d'autres idées aussi.

Répondre

1

Je suppose que vous utilisez IMap::addEntryListener pour enregistrer votre écouteur d'expiration. Au lieu de cela, essayez d'utiliser IMap::addLocalEntryListener qui ne sera lancé que sur le nœud actuellement propriétaire de l'entrée, ce qui signifie que vous recevrez une seule notification.