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