refactor: update gRPC client access patterns to use safe getter methods for improved error handling

This commit is contained in:
Marvin Zhang
2025-07-08 18:08:46 +08:00
parent 8bd3ef0b72
commit 46c0cd6298
5 changed files with 368 additions and 47 deletions

View File

@@ -885,7 +885,12 @@ func (r *Runner) initConnection() (err error) {
r.connMutex.Lock()
defer r.connMutex.Unlock()
r.conn, err = client2.GetGrpcClient().TaskClient.Connect(context.Background())
taskClient, err := client2.GetGrpcClient().GetTaskClient()
if err != nil {
r.Errorf("failed to get task client: %v", err)
return err
}
r.conn, err = taskClient.Connect(context.Background())
if err != nil {
r.Errorf("error connecting to task service: %v", err)
return err
@@ -1004,7 +1009,12 @@ func (r *Runner) reconnectWithRetry() error {
}
// Attempt reconnection
conn, err := client2.GetGrpcClient().TaskClient.Connect(context.Background())
taskClient, err := client2.GetGrpcClient().GetTaskClient()
if err != nil {
r.Warnf("reconnection attempt %d failed to get task client: %v", attempt+1, err)
continue
}
conn, err := taskClient.Connect(context.Background())
if err != nil {
r.Warnf("reconnection attempt %d failed: %v", attempt+1, err)
continue
@@ -1162,7 +1172,12 @@ func (r *Runner) sendNotification() {
NodeKey: r.svc.GetNodeConfigService().GetNodeKey(),
TaskId: r.tid.Hex(),
}
_, err := client2.GetGrpcClient().TaskClient.SendNotification(context.Background(), req)
taskClient, err := client2.GetGrpcClient().GetTaskClient()
if err != nil {
r.Errorf("failed to get task client: %v", err)
return
}
_, err = taskClient.SendNotification(context.Background(), req)
if err != nil {
r.Errorf("error sending notification: %v", err)
return

View File

@@ -405,7 +405,11 @@ func (svc *Service) updateNodeStatus() (err error) {
func (svc *Service) fetchTask() (tid primitive.ObjectID, err error) {
ctx, cancel := context.WithTimeout(context.Background(), svc.fetchTimeout)
defer cancel()
res, err := svc.c.TaskClient.FetchTask(ctx, &grpc.TaskServiceFetchTaskRequest{
taskClient, err := svc.c.GetTaskClient()
if err != nil {
return primitive.NilObjectID, fmt.Errorf("failed to get task client: %v", err)
}
res, err := taskClient.FetchTask(ctx, &grpc.TaskServiceFetchTaskRequest{
NodeKey: svc.cfgSvc.GetNodeKey(),
})
if err != nil {
@@ -496,7 +500,11 @@ func (svc *Service) subscribeTask(taskId primitive.ObjectID) (stream grpc.TaskSe
req := &grpc.TaskServiceSubscribeRequest{
TaskId: taskId.Hex(),
}
stream, err = svc.c.TaskClient.Subscribe(ctx, req)
taskClient, err := svc.c.GetTaskClient()
if err != nil {
return nil, fmt.Errorf("failed to get task client: %v", err)
}
stream, err = taskClient.Subscribe(ctx, req)
if err != nil {
svc.Errorf("failed to subscribe task[%s]: %v", taskId.Hex(), err)
return nil, err