diff --git a/registry/zookeeper/registry.go b/registry/zookeeper/registry.go index ee7154fba1f9fd28a9cd7a68f5f11296802fa0d9..31f1dc3a82a3a19d86fc58b353fad34c978d502e 100644 --- a/registry/zookeeper/registry.go +++ b/registry/zookeeper/registry.go @@ -406,7 +406,9 @@ func (r *zkRegistry) subscribe(conf *common.URL) (registry.Listener, error) { //subscribe from registry func (r *zkRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyListener) { + n := 0 for { + n++ if !r.IsAvailable() { logger.Warnf("event listener game over.") return @@ -422,12 +424,10 @@ func (r *zkRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyLi time.Sleep(time.Duration(RegistryConnDelay) * time.Second) continue } - n := 0 - for { - n++ + for i := 0; ; i++ { if serviceEvent, err := listener.Next(); err != nil { logger.Warnf("Selector.watch() = error{%v}", perrors.WithStack(err)) - if n == 1 { + if i == 0 { listener.Close() break }