Computer >> Máy Tính >  >> Lập trình >> C#

Làm thế nào để viết logic thử lại trong C #?

Thử lại logic được thực hiện bất cứ khi nào có hoạt động không thành công. Chỉ triển khai retrylogic khi có toàn bộ ngữ cảnh của một hoạt động không thành công.

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

Ví dụ

Chương trình lớp
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);
   }
}