github.com/polarismesh/polaris@v1.17.8/test/integrate/grpc/heartbeat.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package grpc 19 20 import ( 21 "context" 22 "fmt" 23 "time" 24 25 apiservice "github.com/polarismesh/specification/source/go/api/v1/service_manage" 26 "google.golang.org/grpc/metadata" 27 28 "github.com/polarismesh/polaris/common/utils" 29 ) 30 31 // Heartbeat 上报心跳 32 func (c *Client) Heartbeat(instance *apiservice.Instance) error { 33 fmt.Printf("\nheartbeat\n") 34 35 md := metadata.Pairs("request-id", utils.NewUUID()) 36 ctx := metadata.NewOutgoingContext(context.Background(), md) 37 38 ctx, cancel := context.WithTimeout(ctx, time.Second) 39 defer cancel() 40 41 rsp, err := c.Worker.Heartbeat(ctx, instance) 42 if err != nil { 43 fmt.Printf("%v\n", err) 44 return err 45 } 46 47 fmt.Printf("%v\n", rsp) 48 49 return nil 50 }