Wie kann man auf den Nachkommenknoten in ZooKeeper mit kurator nach Ereignissen suchen?

8

Ich arbeite an einem Projekt, in dem ich auf einem Knoten Uhren halten muss, und das Knoten auch Kinder. Ich habe versucht, PathCache zu verwenden, aber ich bin nicht sicher, wie man für Kinderkinder hier aufpasst?

Hier ist mein Wurzelknoten - "/my/test" und ich beobachte diesen Knoten unter Verwendung des folgenden Codes. Was ich machen möchte, ist, die Überwachung auf "/my/test" znode zu behalten. Angenommen, diese Knoten werden zu meinem Wurzelknoten hinzugefügt -

%Vor%

Dann sollte ich benachrichtigt werden (bis zu diesem Teil kann ich es funktionieren lassen), aber wenn ein neuer Knoten hinzugefügt, aktualisiert oder entfernt wird in "/my/test/test1" , "/my/test/test2" und "/my/test/test3" , dann sollte ich auch benachrichtigt werden und das ist der Teil, den ich nicht verstehen kann, wie er funktioniert.

Immer wenn ich einen neuen Knoten zu "/my/test" hinzufüge, z. B. "/my/test/test1" , "/my/test/test2" , "/my/test/test3" , wird die Uhr mit dem folgenden Code ausgelöst. Aber wenn ich einen neuen Knoten zu "/my/test/test1" oder "/my/test/test2" hinzufüge, dann werden keine Uhren ausgelöst und ich bin nicht sicher, wie ich den Code dafür hinzufügen soll? Irgendwelche Gedanken wie das gemacht werden kann?

Vielleicht, wenn jemand das in der Vergangenheit gemacht hat. Also wird mir jedes Beispiel eine große Hilfe sein ..

Unten ist mein Code, der für "/my/test" childs funktioniert, aber nicht für die Children von "/my/test/test1" und etc etc.

%Vor%

Unten ist meine addListener Methode -

%Vor%

Kann jemand dafür ein einfaches Beispiel für meinen Anwendungsfall geben? Ich benutze Kurator 2.4.0, der kürzlich veröffentlicht wurde.

    
AKIWEB 10.02.2014, 01:59
quelle

2 Antworten

5

verwenden Sie stattdessen den TreeCache. Es tut alles, was der PathCache tut, und kann Kindknoten handhaben.

    
msj 28.05.2015 09:01
quelle
2

Haben Sie eine Lösung für dieses Problem gefunden?

Ein Hack kann ich vorschlagen, um die Kinder wie:

zu verwenden
  • / mein / test / test1_node1
  • / mein / test / test1_node2

So fügen Sie den Kindknoten von test1 in den Namen von test1 selbst ein.

    
Sanjeev 03.03.2014 09:32
quelle

Tags und Links