server/grpc: fix ordering of register and check for registered (#1338)
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
05b18c03dc
commit
d83b49c634
18
grpc.go
18
grpc.go
@ -659,11 +659,13 @@ func (g *grpcServer) Register() error {
|
|||||||
registered := g.registered
|
registered := g.registered
|
||||||
g.Unlock()
|
g.Unlock()
|
||||||
|
|
||||||
if !registered {
|
if registered {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
if logger.V(logger.InfoLevel, logger.DefaultLogger) {
|
if logger.V(logger.InfoLevel, logger.DefaultLogger) {
|
||||||
logger.Infof("Registry [%s] Registering node: %s", config.Registry.String(), node.Id)
|
logger.Infof("Registry [%s] Registering node: %s", config.Registry.String(), node.Id)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// create registry options
|
// create registry options
|
||||||
rOpts := []registry.RegisterOption{registry.RegisterTTL(config.RegisterTTL)}
|
rOpts := []registry.RegisterOption{registry.RegisterTTL(config.RegisterTTL)}
|
||||||
@ -672,11 +674,6 @@ func (g *grpcServer) Register() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// already registered? don't need to register subscribers
|
|
||||||
if registered {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
g.Lock()
|
g.Lock()
|
||||||
defer g.Unlock()
|
defer g.Unlock()
|
||||||
|
|
||||||
@ -787,10 +784,10 @@ func (g *grpcServer) Start() error {
|
|||||||
g.RUnlock()
|
g.RUnlock()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
g.RUnlock()
|
|
||||||
|
|
||||||
config := g.Options()
|
config := g.Options()
|
||||||
|
|
||||||
|
g.RUnlock()
|
||||||
|
|
||||||
// micro: config.Transport.Listen(config.Address)
|
// micro: config.Transport.Listen(config.Address)
|
||||||
var ts net.Listener
|
var ts net.Listener
|
||||||
|
|
||||||
@ -822,10 +819,11 @@ func (g *grpcServer) Start() error {
|
|||||||
}
|
}
|
||||||
g.Lock()
|
g.Lock()
|
||||||
g.opts.Address = ts.Addr().String()
|
g.opts.Address = ts.Addr().String()
|
||||||
|
subscribes := g.subscribers
|
||||||
g.Unlock()
|
g.Unlock()
|
||||||
|
|
||||||
// only connect if we're subscribed
|
// only connect if we're subscribed
|
||||||
if len(g.subscribers) > 0 {
|
if len(subscribes) > 0 {
|
||||||
// connect to the broker
|
// connect to the broker
|
||||||
if err := config.Broker.Connect(); err != nil {
|
if err := config.Broker.Connect(); err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user