- 재시도 사이의 대기 시간을 점진적으로 늘리는 전략
- 웹 서비스 관련 작업에 사용하면 서버가 재시도로 넘치지 않게 막을 수 있다.
public static async Task<string> GetRequestHttpWithRetries() {
//1초 후, 다음에는 2초 후, 다음에는 4초 후 재시도
TimeSpan nextDelay = TimeSpan.FromSeconds(1);
HttpClient client = new HttpClient();
string url = "http://www.naver.com";
for (int i = 0; i != 3; i++) {
try {
var result = await client.GetStringAsync(url);
Console.WriteLine(string.Format("time: {0}, result: {1}", nextDelay, result));
return result;
}
catch {
}
await Task.Delay(nextDelay);
nextDelay = nextDelay + nextDelay;
}
return await client.GetStringAsync(url);
}
'프로그래밍언어 > C#' 카테고리의 다른 글
[C#] 동시성 프로그래밍_비동기 스트림 (0) | 2023.07.12 |
---|---|
[C#] 동시성 프로그래밍_Task.WhenAny (0) | 2023.07.06 |
[C#] 동시성 프로그래밍_Task.WhenAll (0) | 2023.07.06 |
[C#] 동시성 프로그래밍_ CancellationTokenSource를 이용한 타임아웃 구현 (0) | 2023.07.04 |
[C#] 동시성 (0) | 2023.06.28 |