func()

in clients/zk_client/zk_client.go [52:75]


func (zc *ShenYuZkClient) NewClient(clientParam interface{}) (client interface{}, createResult bool, err error) {
	zcp, ok := clientParam.(*ZkClientParam)
	if !ok {
		logger.Fatalf("The clientParam  must not nil!")
	}
	//client = new(ShenYuZkClient)
	if len(zcp.ZkRoot) == 0 {
		logger.Fatalf("The param zkRoot must set a value!")
	}
	conn, _, err := zk.Connect(zcp.ZkServers, time.Duration(constants.DEFAULT_ZOOKEEPER_CLIENT_TIME)*time.Second)
	if err != nil {
		if err := zc.ensureRoot(); err != nil {
			zc.Close()
			return &ShenYuZkClient{}, false, err
		}
	}
	return &ShenYuZkClient{
		Zcp: &ZkClientParam{
			ZkRoot:    zcp.ZkRoot,
			ZkServers: zcp.ZkServers,
		},
		ZkClient: conn,
	}, true, nil
}