func pingCluster(proxy *proxy.Proxy) { if err := etclib.Dial([]string{zk}); err != nil { fmt.Printf("zk: %s", err.Error()) return } go proxy.StartMonitorCluster() proxy.AwaitClusterTopologyReady() peers := proxy.ClusterPeers() if len(peers) == 0 { fmt.Println("found no fae peers") return } for i := 0; i < loops; i++ { for _, peerAddr := range peers { client, err := proxy.ServantByAddr(peerAddr) if err != nil { fmt.Printf("[%6d] %21s: %s\n", i+1, peerAddr, err) continue } ctx := rpc.NewContext() ctx.Reason = REASON ctx.Rid = time.Now().UnixNano() + int64(i) pong, err := client.Ping(ctx) if err != nil { client.Close() fmt.Printf("[%6d] %21s: %s\n", i+1, peerAddr, err) } else { fmt.Printf("[%6d] %21s: %s\n", i+1, peerAddr, pong) } client.Recycle() } } }