在C#中,Polly是一個專門用于處理重試策略的庫,可以通過NuGet包管理器安裝。以下是一個示例代碼,演示如何使用Polly來實現一個簡單的重試策略:
using Polly;
using System;
class Program
{
static void Main()
{
var policy = Policy
.Handle<Exception>()
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
(exception, timeSpan, retryCount, context) =>
{
Console.WriteLine($"Retry {retryCount} due to {exception}");
});
policy.Execute(() =>
{
// 調用可能會失敗的方法
DoSomething();
});
}
static void DoSomething()
{
Console.WriteLine("Doing something...");
// 模擬方法失敗
throw new Exception("Something went wrong");
}
}
在上面的示例代碼中,我們首先創建了一個重試策略,使用WaitAndRetry
方法指定重試次數和重試間隔。然后,在policy.Execute
方法中,我們調用可能會失敗的方法DoSomething()
,并使用重試策略來處理可能的異常。
如果DoSomething()
方法拋出異常,Polly會根據我們指定的重試策略進行重試,并在每次重試時輸出相應的信息。通過這種方式,我們可以靈活地控制重試策略,提高程序的穩定性和可靠性。