在 .NET 代码优先 gRPC 中指定截止日期
Specifying a deadline in .NET code-first gRPC
使用 .NET 的代码优先 gRPC,调用服务时如何指定截止日期? Microsoft 的 Reliable gRPC services with deadlines and cancellation 页面只有非代码优先调用的示例。
我的 gRPC 接口被传递了 CallContext
,如 Code-first gRPC services and clients with .NET 所指定,但是该页面上没有示例 - 或者,在我能找到的任何其他页面上 - 关于这是如何预期的待用。
查看CallContext
的代码,可以传递一个包含截止日期的ServerCallContext
。然而,这个 class 是抽象的,我能找到的唯一实现是内部的。
最后,CallContext.Default
包含一个 Deadline
,但是这个 class 是不可变的,所以也没什么帮助。
我一发帖就找到了方法:
var deadline = DateTime.UtcNow.AddSeconds(15);
var context = CallContext.Default.CallOptions.WithDeadline(deadline);
await myService.DoStuffAsync(context);
使用 .NET 的代码优先 gRPC,调用服务时如何指定截止日期? Microsoft 的 Reliable gRPC services with deadlines and cancellation 页面只有非代码优先调用的示例。
我的 gRPC 接口被传递了 CallContext
,如 Code-first gRPC services and clients with .NET 所指定,但是该页面上没有示例 - 或者,在我能找到的任何其他页面上 - 关于这是如何预期的待用。
查看CallContext
的代码,可以传递一个包含截止日期的ServerCallContext
。然而,这个 class 是抽象的,我能找到的唯一实现是内部的。
最后,CallContext.Default
包含一个 Deadline
,但是这个 class 是不可变的,所以也没什么帮助。
我一发帖就找到了方法:
var deadline = DateTime.UtcNow.AddSeconds(15);
var context = CallContext.Default.CallOptions.WithDeadline(deadline);
await myService.DoStuffAsync(context);