From 9cf72f8a0bc5743b90e574c958b5b22616d4ecc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E8=BE=9B=E6=A0=BC?= <xg.gao@tianrang-inc.com> Date: Thu, 19 Sep 2019 09:47:14 +0800 Subject: [PATCH] fix: skip subscribe in provider situation --- registry/consul/registry.go | 20 ++++---------------- registry/consul/registry_test.go | 2 +- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/registry/consul/registry.go b/registry/consul/registry.go index 1fd3e54e9..73bf3975b 100644 --- a/registry/consul/registry.go +++ b/registry/consul/registry.go @@ -111,31 +111,21 @@ func (r *consulRegistry) unregister(url common.URL) error { return r.client.Agent().ServiceDeregister(buildId(url)) } -func (r *consulRegistry) subscribe(url *common.URL) (registry.Listener, error) { - var ( - listener registry.Listener - err error - ) - +func (r *consulRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyListener) { role, _ := strconv.Atoi(r.URL.GetParam(constant.ROLE_KEY, "")) if role == common.CONSUMER { - listener, err = r.getListener(*url) - if err != nil { - return nil, err - } + r.subscribe(url, notifyListener) } - return listener, nil } -//subscibe from registry -func (r *consulRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyListener) { +func (r *consulRegistry) subscribe(url *common.URL, notifyListener registry.NotifyListener) { for { if !r.IsAvailable() { logger.Warnf("event listener game over.") return } - listener, err := r.subscribe(url) + listener, err := r.getListener(*url) if err != nil { if !r.IsAvailable() { logger.Warnf("event listener game over.") @@ -155,9 +145,7 @@ func (r *consulRegistry) Subscribe(url *common.URL, notifyListener registry.Noti logger.Infof("update begin, service event: %v", serviceEvent.String()) notifyListener.Notify(serviceEvent) } - } - } } diff --git a/registry/consul/registry_test.go b/registry/consul/registry_test.go index ff8c2e231..bb6842cd8 100644 --- a/registry/consul/registry_test.go +++ b/registry/consul/registry_test.go @@ -51,7 +51,7 @@ func (suite *consulRegistryTestSuite) testUnregister() { func (suite *consulRegistryTestSuite) testSubscribe() { consumerUrl := newConsumerUrl(consumerHost, consumerPort, service, protocol) suite.consumerUrl = consumerUrl - listener, err := suite.consumerRegistry.subscribe(&consumerUrl) + listener, err := suite.consumerRegistry.getListener(consumerUrl) assert.NoError(suite.t, err) suite.listener = listener } -- GitLab