Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Cách Viết Logic Thử Lại (Retry Logic) Trong C#


Logic thử lại được triển khai bất cứ khi nào có một hoạt động thất bại. Triển khai logic thử lại chỉ nơi có ngữ cảnh đầy đủ của một hoạt động thất bại.

Việc ghi log tất cả các lỗi kết nối gây ra thử lại rất quan trọng để các vấn đề cơ bản với ứng dụng, dịch vụ, hoặc tài nguyên có thể được xác định.

Ví Dụ

class Program{ 
    public static void Main(){ 
        HttpClient client = new HttpClient(); 
        dynamic res = null; 
        var retryAttempts = 3; 
        var delay = TimeSpan.FromSeconds(2); 
        RetryHelper.Retry(retryAttempts, delay, () =>{ 
            res = client.GetAsync("https://example22.com/api/cycles/1"); 
        }); 
        Console.ReadLine(); 
    } 
} 
public static class RetryHelper{ 
    public static void Retry(int times, TimeSpan delay, Action operation){ 
        var attempts = 0; 
        do{ 
            try{ 
                attempts++; 
                System.Console.WriteLine(attempts); 
                operation(); 
                break; 
            } 
            catch (Exception ex){ 
                if (attempts == times) 
                    throw; 
                Task.Delay(delay).Wait(); 
            } 
        } while (true); 
    } 
}