我试图了解gRPC的期限,以及每个ClientContext是否有一个期限,还是gRPC保留了一组期限?
此处解释了该概念:https://www.grpc.io/docs/guides/concepts/
设置和检查截止日期,在此说明(带有代码): https://grpc.io/blog/deadlines/
但是,这两个问题都没有解决以下问题:当我设置截止日期时,是否可以取消它并替换为另一个截止时间,或者调用截止时间只是添加到截止时间/计时器列表中?
deadline_set(&context,200);
std::unique_ptr<ClientWriter<Thing> >
writer( this->service_stub->Upload(&context, &response) );
...
for( total = 0L; total < file_size; ) {
read_count = read( fd, buffer, buffer_size );
....
thing.set_msgbuf(buffer, read_count);
deadline_set(&context,200);
writer->Write(chunk);
便捷功能设置截止日期的地方
void deadline_set(ClientContext* ctx, long value) {
time_point deadline = std::chrono::system_clock::now() +
std::chrono::milliseconds(value);
ctx->set_deadline(deadline);
}
我发现此stackoverflow帖子指向源代码, Where is the code of gRPC that handles deadline in the client stub?
似乎没有保留列表或计时轮...