我想使用 Polly 来处理我需要进行的 HTTP API 调用的结果。我将政策定义为:
var r = await Policy
.HandleResult<DescribeApplicationVersionsResponse>(x => x.ApplicationVersions[0]?.Status != ApplicationVersionStatus.Processed)
.WaitAndRetryAsync(10, retryAttempt => TimeSpan.FromSeconds(1), onRetry: (describeResponse, timeSpan, context) => {
Console.WriteLine($"Application version was '{describeResponse.Result.ApplicationVersions[0].Status}', retrying in {timeSpan}");
})
.ExecuteAsync(() =>
BeanstalkClient.DescribeApplicationVersionsAsync(describeApplicationVersionRequest)
);
如果策略从未成功(即从未满足结果标准并且已通过重试限制),我想抛出异常,因为我的应用程序无法继续。
是否可以通过 Polly 策略构建器扩展方法来定义它?