【发布时间】:2015-10-05 04:56:58
【问题描述】:
我正在使用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);
【问题讨论】: