Polly 超时
配置基础在重试机制篇章已经说明,这里不再重复。
对方法执行进行超时处理。
// 超时,如果执行的委托尚未完成,请在30秒后返回到调用方。 乐观超时:代表应参加并遵守CancellationToken Policy .Timeout(30) // 将超时配置为时间跨度 Policy .Timeout(TimeSpan.FromMilliseconds(2500)) // 通过功能提供程序配置变量超时 Policy .Timeout(() => myTimeoutProvider)) // Func<TimeSpan> myTimeoutProvider // 超时,如果操作超时则调用操作 Policy .Timeout(30, onTimeout: (context, timespan, task) => { // 添加超时发生时要调用的额外逻辑,例如日志记录 }); // 例如超时,记录执行超时: Policy .Timeout(30, onTimeout: (context, timespan, task) => { logger.Warn($"{context.PolicyKey} at {context.OperationKey}: execution timed out after {timespan.TotalSeconds} seconds."); }); // 例如超时,在超时任务完成时捕获超时任务中的所有异常: Policy .Timeout(30, onTimeout: (context, timespan, task) => { task.ContinueWith(t => { if (t.IsFaulted) logger.Error($"{context.PolicyKey} at {context.OperationKey}: execution timed out after {timespan.TotalSeconds} seconds, with: {t.Exception}."); }); });
参考:
https://github.com/App-vNext/Polly#timeout
https://github.com/App-vNext/Polly/wiki/Timeout

浙公网安备 33010602011771号