2017-03-21 6 views
2

私のnode.jsサーバーでnode-zookeeper-clientを使用しています。node-zookeeper-client getData一度だけコールバックを実行

getDataメソッドでzノードのデータを見ると、最初の実行で正常に動作します。

問題はノードを更新するときです(ZK-Webユーザーインターフェイスを使用) - ウォッチャーは初めてデータを更新するときにのみ起動します。私がもう一度それを更新すれば、それは起動しません。 コールバックはまったく呼び出されません(最初の実行時のみ、最初の更新時でさえも)。

質問です:

  1. ウォッチャーのみ、最初の更新時に呼び出すのはなぜ?
  2. コールバックは最初の実行時にのみ呼び出され、データが変更されるたびに呼び出されるのはなぜですか?

マイコード:

zkClient = zookeeper.createClient('zookeeper-server'); 
zkClient.connect(); 

zkClient.getData('/path/to/config', 
       (event) => console.log(event), 
       (error, data, stat) => myService.exec(data)); 

ありがとうございます!

+0

私の答えを使用できますか?それ以外の場合は、お気軽にコメントしてください。 – Nicholas

答えて

0
  1. 時計は一回トリガーです。 ZooKeeper documentation about watchesをご覧ください。

  2. それはまた、あなたの2番目の質問に答える:それは1回だけトリガする。

どのような場合でも、トリガーされたときに時計を再登録する必要があります。ウォッチを使用しているときにZooKeeperから得られる保証の詳細を理解するために、ドキュメントを読んでください。あなたのユースケースでは、重要でないかもしれません。

関連する問題