文章出處
文章列表
Polly 是一種 .NET 彈性和瞬態故障處理庫,允許開發人員以流暢和線程安全的方式表達策略,如重試,斷路器,超時,隔離隔離和備用,Polly 適用于 .NET 4.0,.NET 4.5 和 .NET Standard 1.1。
安裝 Nuget 程序包:
Install-Package Polly
簡單使用:
// Execute an action
var policy = Policy
.Handle<Exception>()
.RetryAsync(10, async (exception, retryCount) =>
{
await LogAsync(exception, $"第{retryCount}次重試");
});
await policy.ExecuteAsync(async () => await DoSomething());
//另外一種使用方式:
var tokenResponse = await Policy
.Handle<Exception>()
.OrResult<TokenResponse>(x => x.IsError)
.RetryAsync(5) //如果使用Retry,會報錯誤:Please use asynchronous-defined policies when calling asynchronous ExecuteAsync (and similar) methods
.ExecuteAsync(async () =>
{
var client = new DiscoveryClient(_appSettings.IssuerUri);
client.Policy.RequireHttps = false;
var disco = await client.GetAsync();
var tokenClient = new TokenClient(disco.TokenEndpoint, clientId, clientSecret);
return await tokenClient.RequestRefreshTokenAsync(refreshToken);
});
參考資料:
文章列表
全站熱搜