main.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package watch
  2. import (
  3. "fmt"
  4. "github.com/samuel/go-zookeeper/zk"
  5. "time"
  6. )
  7. var hosts = []string{"localhost:8000"}
  8. var path1 = "/whatzk"
  9. var flags int32 = zk.FlagEphemeral
  10. var data1 = []byte("hello,this is a zk go test demo!!!")
  11. var acls = zk.WorldACL(zk.PermAll)
  12. func main() {
  13. option := zk.WithEventCallback(callback) //调用zk.WithEventCallback(callback)设置回调
  14. conn, _, err := zk.Connect(hosts, time.Second*5, option)
  15. defer conn.Close()
  16. if err != nil {
  17. fmt.Println(err)
  18. return
  19. }
  20. _, _, _, err = conn.ExistsW(path1)
  21. if err != nil {
  22. fmt.Println(err)
  23. return
  24. }
  25. create(conn, path1, data1)
  26. time.Sleep(time.Second * 2)
  27. _, _, _, err = conn.ExistsW(path1)
  28. if err != nil {
  29. fmt.Println(err)
  30. return
  31. }
  32. delete(conn, path1)
  33. }
  34. func callback(event zk.Event) {
  35. fmt.Println("*******************")
  36. fmt.Println("path:", event.Path)
  37. fmt.Println("type:", event.Type.String())
  38. fmt.Println("state:", event.State.String())
  39. fmt.Println("-------------------")
  40. }
  41. func create(conn *zk.Conn, path string, data []byte) {
  42. _, err_create := conn.Create(path, data, flags, acls)
  43. if err_create != nil {
  44. fmt.Println(err_create)
  45. return
  46. }
  47. }