fix: duplicated start grpc client

This commit is contained in:
Marvin Zhang
2024-06-27 23:52:01 +08:00
parent 8836206835
commit 4830d5d546
2 changed files with 19 additions and 14 deletions

View File

@@ -36,6 +36,7 @@ type GrpcClientV2 struct {
stream grpc2.NodeService_SubscribeClient stream grpc2.NodeService_SubscribeClient
msgCh chan *grpc2.StreamMessage msgCh chan *grpc2.StreamMessage
err error err error
once sync.Once
// clients // clients
NodeClient grpc2.NodeServiceClient NodeClient grpc2.NodeServiceClient
@@ -46,23 +47,27 @@ type GrpcClientV2 struct {
} }
func (c *GrpcClientV2) Start() (err error) { func (c *GrpcClientV2) Start() (err error) {
// connect c.once.Do(func() {
if err := c.connect(); err != nil { // connect
return err err = c.connect()
} if err != nil {
return
}
// register rpc services // register rpc services
c.Register() c.Register()
// subscribe // subscribe
if err := c.subscribe(); err != nil { err = c.subscribe()
return err if err != nil {
} return
}
// handle stream message // handle stream message
go c.handleStreamMessage() go c.handleStreamMessage()
})
return nil return err
} }
func (c *GrpcClientV2) Stop() (err error) { func (c *GrpcClientV2) Stop() (err error) {

View File

@@ -69,7 +69,7 @@ func (svr NodeServerV2) Register(ctx context.Context, req *grpc.Request) (res *g
if err != nil { if err != nil {
return HandleError(err) return HandleError(err)
} }
log.Infof("[NodeServerV2] updated worker[%s] in db. id: %s", nodeKey, node.Id.Hex()) log.Infof("[NodeServerV2] updated worker[%s] in db. id: %s", nodeKey, nodeDb.Id.Hex())
} }
} else if errors2.Is(err, mongo.ErrNoDocuments) { } else if errors2.Is(err, mongo.ErrNoDocuments) {
// register new // register new