我正在使用Polly发出 HTTP 请求并在请求失败时重试 5 次。
当 5 次尝试都失败并且策略放弃时,是否可以指定一个操作?
在下面的代码中;当我们失败 5 次时,我知道用户没有互联网,所以我想显示一个消息框,上面写着“应用程序需要互联网”。我可以使用计数器来计算 5 次失败,但使用 Polly 方法会更好。
var policy = Polly.Policy.Handle<Exception>().WaitAndRetryAsync(
5,
retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
(ex, span) =>
{
Mvx.Trace("Retried because of {0}", ex);
}
);
await policy.ExecuteAsync(() => MakeRequestEx<T>(requestUrl, verb, accept, headers, baseAddress)).ConfigureAwait(false);