通过 Polly 重试策略确定最终重试的完成情况

Nim*_*hew 3 c# asp.net polly

如何识别Polly中最终重试的完成(不是onRetry事件,而是实际执行和完成)?

我可以将重试计数与 onRetry 事件内的最大重试计数进行比较,但该事件只是重试的启动,而重试在等待时间内尚未发生。我想要做的是确定最终重试的结束,无论是成功还是失败。

mou*_*ler 5

我想要做的是确定最终重试的结束,无论是成功还是失败。

您可以使用 Polly'sExecuteAndCaptureAsync()代替.ExecuteAsync()

ExecuteAndCaptureAsync()返回PolicyResult带有PolicyResult.Outcome == OutcomeType.Successful或 的对象OutcomeType.Failure(以及文档中涵盖的其他属性)。


如果坚持使用.ExecuteAsync()而不是ExecuteAndCaptureAsync(),则通过继续执行下一条语句来确定最终尝试的结束(成功时);或(失败时)通过策略重新抛出最终异常ExecuteAndCaptureAsync()只是这些行为的包装。