在C#中,Polly是一个专门用于处理重试策略的库,可以通过NuGet包管理器安装。以下是一个示例代码,演示如何使用Polly来实现一个简单的重试策略:
using Polly; using System; class Program { static void Main() { var policy = Policy .Handle() .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会根据我们指定的重试策略进行重试,并在每次重试时输出相应的信息。通过这种方式,我们可以灵活地控制重试策略,提高程序的稳定性和可靠性。