Entity Framework에는 신뢰할 수없는 네트워크에서 작동하는 '연결 복구 및 다시 시도 논리'메커니즘이 있습니다.System.Net.Http.HttpClient에 대한 자동 재 시도
System.Net.Http.HttpClient에도 이와 같은 문제가 있습니까? 일종의 자동 재시도 메커니즘으로 연결이 끊어 지거나 시간 초과가 발생하면 x 번 재 시도합니다.
그럴 수 있습니까?
Entity Framework에는 신뢰할 수없는 네트워크에서 작동하는 '연결 복구 및 다시 시도 논리'메커니즘이 있습니다.System.Net.Http.HttpClient에 대한 자동 재 시도
System.Net.Http.HttpClient에도 이와 같은 문제가 있습니까? 일종의 자동 재시도 메커니즘으로 연결이 끊어 지거나 시간 초과가 발생하면 x 번 재 시도합니다.
그럴 수 있습니까?
내가 아는 한, 그러한 메커니즘은 없습니다. 그러나 모든 x 밀리 초의 연결을 확인하면서 이벤트를 작성할 수 있습니다.
같은public class CheckInternet
{
public CheckInternet()
{
Timer t1 = new Timer();
t1.Interval = 1000;
t1.Tick += T1_Tick;
t1.Start();
}
private void T1_Tick(object sender, EventArgs e)
{
var ping = new System.Net.NetworkInformation.Ping();
var result = ping.Send("www.google.com");
if (result.Status != System.Net.NetworkInformation.IPStatus.Success)
{
// Your code to reconnect here
}
}
public event EventHandler CheckConnectivity;
private void OnCheckConnectivity()
{
CheckConnectivity?.Invoke(this, new EventArgs());
}
}
이제 당신의 다른 클래스 사용이 구현
CheckInternet cki = new CheckInternet();
cki.CheckConnectivity += new cki_CheckConnectivity;
당신은 폴리를 사용하여 작업을 수행 할 수 있습니다
그리고 상태 코드가 과도기인지 또는 회로 차단기를 추가했는지 감지하여이를 확장하려고하면 Polly와 같은 기존 라이브러리를 사용하는 것이 좋습니다. –
는 참조 https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/ src/BuildingBlocks/Resilience/Resilience.Http/ResilientHttpClient.cs –
@Peter; 고마워, 그걸 들여다 보겠다.하지만 좀 더 가볍거나 네이티브 일 수 있기를 바란다. 닷넷 – Michel
AFAIK 상자에는 아무것도 없다. –