| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package watch
- import (
- "fmt"
- "github.com/samuel/go-zookeeper/zk"
- "time"
- )
- /*
- 1.如果即设置了全局监听有设置了部分监听,那么最终是都会触发的,并且全局监听在先执行
- 2.如果设置了监听子节点,那么事件的触发是先子节点后父节点
- */
- func main() {
- conn, _, err := zk.Connect(hosts, time.Second*5)
- defer conn.Close()
- if err != nil {
- fmt.Println(err)
- return
- }
- _, _, ech, err := conn.ExistsW(path1) //调用conn.ExistsW(path) 或GetW(path)为对应节点设置监听,该监听只生效一次
- if err != nil {
- fmt.Println(err)
- return
- }
- go watchCreataNode(ech)
- create(conn, path1, data1)
- }
- func watchCreataNode(ech <-chan zk.Event){
- event:=<-ech
- fmt.Println("*******************")
- fmt.Println("path:", event.Path)
- fmt.Println("type:", event.Type.String())
- fmt.Println("state:", event.State.String())
- fmt.Println("-------------------")
- }
|