grpc C++ timeout 超时设置

2020/03/06 rpc

此文首发于我的Jekyll博客:zhang0peter的个人博客


如果 grpc的客户端是阻塞式请求,那么默认是没有超时设置,会一直等待:

grpc::ClientContext oCtx;
oStatus = poStub->Echo(&oCtx, echoRequest, &echoResponse);

官方文档:gRPC and Deadlines

设置超时:

unsigned int client_connection_timeout = 5;

ClientContext context;

// Set timeout for API
std::chrono::system_clock::time_point deadline =
    std::chrono::system_clock::now() + std::chrono::seconds(client_connection_timeout);

context.set_deadline(deadline);

关于grpcprotobuf的安装和使用,参考这篇博客:grpc与protobuf最佳实践