goProject/trunk/framework/zooKeeperMgr/create.go

51 lines
911 B
Go
Raw Normal View History

2025-01-06 16:01:02 +08:00
package zooKeeperMgr
import (
"fmt"
"strings"
"github.com/samuel/go-zookeeper/zk"
)
// 级联创建path节点如果中间节点不存在则创建
func CascadeCreate(conn *zk.Conn, path string) error {
if path == "" {
return nil
}
subPathArr := strings.Split(path, "/")
path = ""
var data = []byte("")
var flags int32 = 0
var acls = zk.WorldACL(zk.PermAll)
for i := 0; i < len(subPathArr); i++ {
// Omit the first one which is /
if subPathArr[i] == "" {
continue
}
path += fmt.Sprintf("/%s",subPathArr[i])
fmt.Printf("Path:%s\n",path)
exists, _, err := conn.Exists(path)
if err != nil {
return err
}
if exists {
continue
}
retPath, err := conn.Create(path, data, flags, acls)
if err != nil {
if err == zk.ErrNodeExists {
fmt.Println(err)
continue
}
return err
}
fmt.Printf("ZooKeeper created:%s\n", retPath)
}
return nil
}