【发布时间】:2020-04-20 18:24:36
【问题描述】:
我有一个方法 startServer() 可以启动一个简单的 cpp grpc 服务器。
我想让server->Wait() 调用非阻塞,无需处理维护完成队列或处理 RPC 调用的任何额外开销。
我研究了 grpc 服务器的异步风格,但没有找到任何简单的示例来执行此操作而不增加任何额外的开销。除了在单独的线程上运行之外,是否有任何简单/简单的方法可以使此函数非阻塞?
void GrpcIface::startServer() {
std::string address("0.0.0.0:5000");
GrpcIface service;
grpc::ServerBuilder builder;
builder.AddListeningPort(address, grpc::InsecureServerCredentials());
builder.RegisterService(&service);
std::unique_ptr<grpc::Server> server(builder.BuildAndStart());
std::cout << "GrpcIface :: Server listening on port: " << address << std::endl;
server->Wait();
}
【问题讨论】: