2017-01-07 14 views
0

せずに返し、私は私が行く-飼育係を使用しています、外出先での飼育係を持つ単純なサービス探索を実装しようとしています:私は接続するたびhttps://github.com/samuel/go-zookeeper行く-ZooKeeperの接続は、私が飼育係に関する質問があり、有効な接続

私の質問は例えば、

zoo_keeper, _, err := zk.Connect(s, time.Second) 

すぐに機能が返され、エラーは報告されませんが、実際に有効な接続はまだありません。今、例えばzノードを作成したい場合、有効な接続があることを確認するために何を確認する必要がありますか?

+0

「err!= nil'」をチェックしましたか?エラーが発生した可能性があります。 –

+0

@ImeshaSudasinghaはい私はそれをチェックしたがエラーはない。今私は、接続するだけ接続されていないかもしれない接続オブジェクトを返すと仮定します。 Java APIのzookeeperコンストラクタに似ています。しかし、私の前提が正しいかどうかはわかりません。 – silentnights

+1

ああ...はい。コンストラクタはすぐに戻ります。あなたはウォッチャーを追加してsynConnectedイベントを確認する必要があります –

答えて

1

私はいくつかのことを試した後、イメシャからの提案のおかげで、私はチャンネルを使って欲しいものを達成することができます。以下は私のサンプルコードです。

func zk_connect(zk_server string) (*zk.Conn, error) { 
    zoo_keeper, session, err := zk.Connect([]string{zk_server}, time.Second) 
    if err != nil { 
     return nil, err 
    } 
    for event := range session { 
     if event.State == zk.StateConnected { 
      log.Printf("zookeeper State: %s\n", event.State) 
      break 
     } 
    } 
    return zoo_keeper, nil 
} 
関連する問題