From a5165828bab83fd844a9108cac0350534f5c6b46 Mon Sep 17 00:00:00 2001 From: "huangsimin@fusen.cn" Date: Thu, 25 Jan 2024 17:04:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0grpc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- goutils/proto_build/tpls/auto_grpc_nacos.tpl | 22 +++++++++----------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/goutils/proto_build/tpls/auto_grpc_nacos.tpl b/goutils/proto_build/tpls/auto_grpc_nacos.tpl index 6aeb70d..50e0a2b 100644 --- a/goutils/proto_build/tpls/auto_grpc_nacos.tpl +++ b/goutils/proto_build/tpls/auto_grpc_nacos.tpl @@ -30,7 +30,6 @@ func AutoGrpcInit(obj any) { for i := 0; i < value.NumField(); i++ { v := value.Field(i) - if v.IsValid() { _namingClient, ok := v.Interface().(naming_client.INamingClient) if ok { @@ -42,7 +41,6 @@ func AutoGrpcInit(obj any) { {{range .ClientParams}} - func Auto{{.ClientName}}Client(ctx context.Context) {{.ClientName}}Client { if namingClient == nil { log.Println("nameClient must be init. call") @@ -54,27 +52,25 @@ func Auto{{.ClientName}}Client(ctx context.Context) {{.ClientName}}Client { GroupName: groupName, } - for i := 0; i < 10; i++ { + for i := 0; i < 3; i++ { insService, err := namingClient.SelectOneHealthyInstance(sel) if err != nil { log.Println(err) - return nil + continue } if insService.Enable && insService.Healthy { - conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", insService.Ip, insService.Port), grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { log.Println(err) - return nil + continue } return New{{.ClientName}}Client(conn) } } + log.Println(fmt.Errorf("no healthy with times 3")) return nil } - - func Auto{{.ClientName}}ClientEx(ctx context.Context, opts ...grpc.DialOption) ({{.ClientName}}Client,error) { if namingClient == nil { return nil, fmt.Errorf("nameClient must be init. call") @@ -85,21 +81,23 @@ func Auto{{.ClientName}}ClientEx(ctx context.Context, opts ...grpc.DialOption) ( GroupName: groupName, } - for i := 0; i < 10; i++ { + for i := 0; i < 3; i++ { insService, err := namingClient.SelectOneHealthyInstance(sel) if err != nil { - return nil, err + log.Println(err) + continue } if insService.Enable && insService.Healthy { conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", insService.Ip, insService.Port), opts...) if err != nil { - return nil, err + log.Println(err) + continue } return New{{.ClientName}}Client(conn), nil } } - return nil, fmt.Errorf("no healthy with times 10") + return nil, fmt.Errorf("no healthy with times 3") } {{end}} \ No newline at end of file