Polly重试策略如何识别最终重试完成?

3

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

我可以在onRetry事件中将重试计数与最大重试计数进行比较,但该事件仅是重试的启动,而重试尚未在等待持续时间内发生。我的目标是识别最终重试的结束,无论成功或失败。

1个回答

5
我想做的是识别最终重试的结束,无论成功或失败。
您可以使用Polly的ExecuteAndCaptureAsync()替换.ExecuteAsync()ExecuteAndCaptureAsync()返回一个PolicyResult对象,其中PolicyResult.Outcome == OutcomeType.SuccessfulOutcomeType.Failure(文档中涵盖了其他属性)。
如果坚持使用.ExecuteAsync()而不是ExecuteAndCaptureAsync(),则在执行成功时,最终尝试的结尾将通过继续执行下一条语句来确定;或者(在失败时)通过策略重新抛出最终异常来确定。 ExecuteAndCaptureAsync()仅是这些行为的包装器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接