根据Polly重试政策确定最终重试的完成情况

时间:2018-12-27 19:31:04

标签: c# asp.net polly

我如何确定Polly中最后一次重试的完成(不是onRetry事件,而是实际的执行和完成)?

我可以在onRetry事件中将重试次数与最大重试次数进行比较,但是该事件只是重试的启动,尚未在等待时间内发生。我想做的是确定最终重试的成功与否。

1 个答案:

答案 0 :(得分:2)

  

我想做的是确定最终重试的成功与否。

您可以使用Polly的ExecuteAndCaptureAsync()代替.ExecuteAsync()

ExecuteAndCaptureAsync()返回带有PolicyResultPolicyResult.Outcome == OutcomeType.Successful的{​​{1}}对象(在文档中介绍的其他属性中)。


如果坚持使用OutcomeType.Failure而不是.ExecuteAsync(),则通过继续执行下一条语句来确定最终尝试的结束(成功)。或(失败时)根据策略rethrowing the final exceptionExecuteAndCaptureAsync()只是这些行为的包装。