chuntaojun commented on code in PR #1988:
URL: https://github.com/apache/dubbo-go/pull/1988#discussion_r928108610


##########
registry/polaris/core.go:
##########
@@ -74,48 +73,52 @@ func (watcher *PolarisServiceWatcher) lazyRun() {
 
 // startWatch start run work to watch target service by polaris
 func (watcher *PolarisServiceWatcher) startWatch() {
-
        for {
                resp, err := 
watcher.consumer.WatchService(watcher.subscribeParam)
                if err != nil {
                        time.Sleep(time.Duration(500 * time.Millisecond))
                        continue
                }
-
                watcher.notifyAllSubscriber(&config_center.ConfigChangeEvent{
                        Value:      resp.GetAllInstancesResp.Instances,
                        ConfigType: remoting.EventTypeAdd,
                })
 
-               select {
-               case event := <-resp.EventChannel:
-                       eType := event.GetSubScribeEventType()
-                       if eType == api.EventInstance {
-                               insEvent := event.(*model.InstanceEvent)
-                               if insEvent.AddEvent != nil {
-                                       
watcher.notifyAllSubscriber(&config_center.ConfigChangeEvent{
-                                               Value:      
insEvent.AddEvent.Instances,
-                                               ConfigType: 
remoting.EventTypeAdd,
-                                       })
-                               }
-                               if insEvent.UpdateEvent != nil {
-                                       instances := make([]model.Instance, 
len(insEvent.UpdateEvent.UpdateList))
-                                       for i := range 
insEvent.UpdateEvent.UpdateList {
-                                               instances[i] = 
insEvent.UpdateEvent.UpdateList[i].After
+               for {
+                       select {
+                       case event := <-resp.EventChannel:
+                               eType := event.GetSubScribeEventType()
+                               if eType == api.EventInstance {
+                                       insEvent := event.(*model.InstanceEvent)
+
+                                       if insEvent.AddEvent != nil {
+                                               
watcher.notifyAllSubscriber(&config_center.ConfigChangeEvent{
+                                                       Value:      
insEvent.AddEvent.Instances,
+                                                       ConfigType: 
remoting.EventTypeAdd,
+                                               })
+                                       }
+                                       if insEvent.UpdateEvent != nil {
+                                               instances := 
make([]model.Instance, len(insEvent.UpdateEvent.UpdateList))
+                                               for i := range 
insEvent.UpdateEvent.UpdateList {
+                                                       instances[i] = 
insEvent.UpdateEvent.UpdateList[i].After
+                                               }
+                                               
watcher.notifyAllSubscriber(&config_center.ConfigChangeEvent{
+                                                       Value:      instances,
+                                                       ConfigType: 
remoting.EventTypeUpdate,
+                                               })
+                                       }
+                                       if insEvent.DeleteEvent != nil {
+                                               
watcher.notifyAllSubscriber(&config_center.ConfigChangeEvent{
+                                                       Value:      
insEvent.DeleteEvent.Instances,
+                                                       ConfigType: 
remoting.EventTypeDel,
+                                               })
                                        }
-                                       
watcher.notifyAllSubscriber(&config_center.ConfigChangeEvent{
-                                               Value:      instances,
-                                               ConfigType: 
remoting.EventTypeUpdate,
-                                       })
-                               }
-                               if insEvent.DeleteEvent != nil {
-                                       
watcher.notifyAllSubscriber(&config_center.ConfigChangeEvent{
-                                               Value:      
insEvent.DeleteEvent.Instances,
-                                               ConfigType: 
remoting.EventTypeDel,
-                                       })
                                }
+                       case <-time.After(1 * time.Second):

Review Comment:
   感觉这个是可以移除的,应该不太需求



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to