我需要能够为来自主线程的一些特定请求提供响应,而其余的可以从任何线程到达。考虑到这一点,我创建了一个GRPC服务器,它有2个服务,一个是作为AsyncService实现的,另一个是作为同步服务。
但添加完成队列后,同步服务不再响应请求。
builder.RegisterService(this); // this inherits from Service (sync)
builder.RegisterService(&m_service); // m_services is an AsyncService
m_mainThreadQueue = builder.AddCompletionQueue();
m_server = std::unique_ptr<Server>(builder.BuildAndStart());
{
(new GrabSnapshotCallData(this, &m_service, m_mainThreadQueue.get()))->Proceed();
}
m_server->Wait();
添加完成队列使得同步服务不再响应请求。我在任何地方都找不到关于这个特定主题的很多信息,所以也许grpc并不真正支持它。
那么,有没有一种方法可以在同一台服务器上同时拥有异步和同步服务呢?如果没有,我应该怎么做来模拟这种行为呢
1条答案
按热度按时间jhdbpxl91#
下面是一个简单的c++示例
hellostreamingworld.proto