在gRPC中,你可以使用context.WithTimeout()
函数来设置请求的超时时间。下面是一个示例代码:
package main
import (
"context"
"log"
"time"
pb "your_proto_package" // 替换为实际的proto包名
"google.golang.org/grpc"
)
func main() {
conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure())
if err != nil {
log.Fatalf("Failed to connect: %v", err)
}
defer conn.Close()
client := pb.NewYourServiceClient(conn)
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
response, err := client.YourRPCMethod(ctx, &pb.YourRequest{})
if err != nil {
log.Fatalf("Request failed: %v", err)
}
log.Println("Response:", response)
}
在上述示例中,通过context.WithTimeout()
函数设置了一个5秒的超时时间,并在发送请求之前使用该上下文创建了客户端调用。如果请求在超时时间内未完成,将返回错误。请替换实际的proto包名、RPC方法和服务器地址。
内容由零声教学AI助手提供,问题来源于学员提问