【发布时间】:2021-02-18 17:19:42
【问题描述】:
我有一个项目从其他项目调用了许多其他 API,并且我遇到了一些问题,不仅要识别这些 API 的错误,还要识别正确的响应,但其他系统上的信息不正确。 我做了这部分,但它只记录重试,我还需要记录成功。
services.AddHttpClient<IClient, Client>("AuthClient", x =>
{
x.BaseAddress = new Uri(urlAn);
}).AddPolicyHandler((services, request) =>
HttpPolicyExtensions.HandleTransientHttpError().WaitAndRetryAsync(
new[]
{
TimeSpan.FromSeconds(1),
TimeSpan.FromSeconds(5),
TimeSpan.FromSeconds(10)
},
onRetry: (outcome, timespan, retryAttempt, context) =>
{
services.GetService<ILogger>()
.LogWarning("Delaying for {delay}ms, then making retry {retry}.", timespan.TotalMilliseconds, retryAttempt);
}));
【问题讨论】:
-
这不应该是策略处理程序的关注点。尝试委托处理程序。
-
谢谢@crowcoder,如果你能举个例子,我把它设置为已回答。