在客户端存根中处理截止期限的gRPC代码在哪里?

时间:2019-06-05 08:49:14

标签: grpc

我正在寻找截止日期何时开始倒计时以及gRPC的客户端存根中如何详细处理截止日期。我认为src / cpp / client / generic_stub.cc可能会讲一些细节。在以下来自generic_stub.cc的代码块中,我认为CallInternal()可能包含此类详细信息,但我没有通过名为Understand的软件来了解CallInternal()的实际作用。

// begin a call to a named method
std::unique_ptr<grpc::GenericClientAsyncReaderWriter> GenericStub::Call(
    grpc::ClientContext* context, const grpc::string& method,
    grpc::CompletionQueue* cq, void* tag) {
  return CallInternal(channel_.get(), context, method, cq, true, tag);
}

那么,gRPC中代码的哪一部分包含我想要的细节?非常期待一个答案!谢谢!

1 个答案:

答案 0 :(得分:1)

在grpc中,截止日期不是“递减”的,它们始终是根据当前时间检查的绝对值。

grpc中执行任何截止日期检查的代码位于以下位置:

https://github.com/grpc/grpc/blob/v1.21.3/src/core/ext/filters/deadline/deadline_filter.cc

就代码组织而言,您正在查看的C ++高层没有做太多的逻辑,因此您在这里找不到像这样的信息。通常,在各种包装语言之间共享的grpc核心是查找的地方。