C++ grpc库是否支持阻止完成队列中n个事件的完成状态?
我们并行地发出多个异步请求,每个请求都有一个唯一的标记。我们希望阻止并等待所有这些事件成功、失败或超时完成 我们可以通过计算未完成调用的总数,并在每次从队列中弹出事件时将正在进行的调用总数减少1来实现这一点。我真的不喜欢这个C++ grpc库是否支持阻止完成队列中n个事件的完成状态?,c++,grpc,C++,Grpc,我们并行地发出多个异步请求,每个请求都有一个唯一的标记。我们希望阻止并等待所有这些事件成功、失败或超时完成 我们可以通过计算未完成调用的总数,并在每次从队列中弹出事件时将正在进行的调用总数减少1来实现这一点。我真的不喜欢这个 这需要在每次调用的基础上实例化完成队列(这有相当大的开销),或者重复使用队列,但确保在给定时间只有一个队列的活动用户。这意味着对于发出n个调用的m个线程,我们需要m个队列,每个队列为n个调用提供服务 我们假设队列中不会出现其他事件,从而减少飞行中的事件。我不知道这是否是保
int inFlight = 10; // e.g. with dummy data
while(cq->Next(&tag, &ok) {
inFlight--;
if (inFlight == 0)
break;
/// process...
}
队列被多路复用时是否可以阻止并等待这些事件?gRPC没有支持您的情况的机制。完成队列是一个处理异步操作的低级组件,因此它主要作为一个简单队列工作。因此,您可能必须以自己的方式进行记账
ClientInterceptor
可能有助于跨不同的RPC执行相同的操作。gRPC没有支持您的案例的机制。完成队列是一个处理异步操作的低级组件,因此它主要作为一个简单队列工作。因此,您可能必须以自己的方式进行记账ClientInterceptor
可能有助于跨不同的RPC执行相同的操作