diff --git a/registry/directory/directory.go b/registry/directory/directory.go index bc8b2f78c4e4420926d6666f34dcf6c2fcc4267a..7ffc702248bfe26f82105be6a7220b86d3c3ae51 100644 --- a/registry/directory/directory.go +++ b/registry/directory/directory.go @@ -124,20 +124,19 @@ func (dir *registryDirectory) refreshInvokers(res *registry.ServiceEvent) { url = nil //TODO: router } + switch res.Action { + case remoting.EventTypeAdd, remoting.EventTypeUpdate: + //dir.cacheService.EventTypeAdd(res.Path, dir.serviceTTL) + dir.cacheInvoker(url) + case remoting.EventTypeDel: + //dir.cacheService.EventTypeDel(res.Path, dir.serviceTTL) + dir.uncacheInvoker(url) + logger.Infof("selector delete service url{%s}", res.Service) + default: + return + } } - switch res.Action { - case remoting.EventTypeAdd, remoting.EventTypeUpdate: - //dir.cacheService.EventTypeAdd(res.Path, dir.serviceTTL) - dir.cacheInvoker(&res.Service) - case remoting.EventTypeDel: - //dir.cacheService.EventTypeDel(res.Path, dir.serviceTTL) - dir.uncacheInvoker(&res.Service) - logger.Infof("selector delete service url{%s}", res.Service) - default: - return - } - dir.cacheInvoker(url) newInvokers := dir.toGroupInvokers() dir.listenerLock.Lock() defer dir.listenerLock.Unlock()