替代 "AsyncRetryPolicy" 类型的旧 Polly 包
Alternative to "AsyncRetryPolicy" type in older Polly packages
我创建了一个使用 Polly 进行电子邮件重试的新 code/project,我选择了最新的 Polly Nuget 包 v7.2.1。
但后来我们似乎有其他项目使用旧版本的 Polly (v2.2.7),因此我的项目已降级包。
但是在降级后由于不再识别这种类型而无法编译 - "AsyncRetryPolicy"。
我可以使用旧版本的 Polly 替代此类型吗?
我的代码:
private AsyncRetryPolicy<Response> CreatePollyPolicy(SendEmailMessageRequest request)
{
var policy = Policy.Handle<Exception>()
.OrResult<SendGrid.Response>(response => 500)
.WaitAndRetryAsync(
5, retryAttempt => TimeSpan.FromSeconds(10 * retryAttempt),
async (exception, timeSpan, retryCount, context) =>
{
await LogFailMessage(request);
}
);
return policy;
}
对于 Polly v2.2.7,由 .WaitAndRetryAsync(...)
编辑的策略类型 return 是 可能 RetryPolicy<Response>
.
在许多开发环境中,如果您将鼠标悬停在 var
关键字或 WaitAndRetryAsync(...)
上 - 或者如果您检查来自 [=10] 的 return 类型的智能感知=] - 它会告诉你类型是什么。
但是,处理结果的策略(.OrResult<TResult>(...)
子句)直到 v4.3.0 才添加,因此您将无法在问题原样,v2.2.7。如果可以的话,建议将使用 v2.2.7 的项目升级到更高版本(/最新)的 Polly。
我创建了一个使用 Polly 进行电子邮件重试的新 code/project,我选择了最新的 Polly Nuget 包 v7.2.1。 但后来我们似乎有其他项目使用旧版本的 Polly (v2.2.7),因此我的项目已降级包。
但是在降级后由于不再识别这种类型而无法编译 - "AsyncRetryPolicy"。
我可以使用旧版本的 Polly 替代此类型吗?
我的代码:
private AsyncRetryPolicy<Response> CreatePollyPolicy(SendEmailMessageRequest request)
{
var policy = Policy.Handle<Exception>()
.OrResult<SendGrid.Response>(response => 500)
.WaitAndRetryAsync(
5, retryAttempt => TimeSpan.FromSeconds(10 * retryAttempt),
async (exception, timeSpan, retryCount, context) =>
{
await LogFailMessage(request);
}
);
return policy;
}
对于 Polly v2.2.7,由 .WaitAndRetryAsync(...)
编辑的策略类型 return 是 可能 RetryPolicy<Response>
.
在许多开发环境中,如果您将鼠标悬停在 var
关键字或 WaitAndRetryAsync(...)
上 - 或者如果您检查来自 [=10] 的 return 类型的智能感知=] - 它会告诉你类型是什么。
但是,处理结果的策略(.OrResult<TResult>(...)
子句)直到 v4.3.0 才添加,因此您将无法在问题原样,v2.2.7。如果可以的话,建议将使用 v2.2.7 的项目升级到更高版本(/最新)的 Polly。