2017-09-14 5 views
0

Entity Framework에는 신뢰할 수없는 네트워크에서 작동하는 '연결 복구 및 다시 시도 논리'메커니즘이 있습니다.System.Net.Http.HttpClient에 대한 자동 재 시도

System.Net.Http.HttpClient에도 이와 같은 문제가 있습니까? 일종의 자동 재시도 메커니즘으로 연결이 끊어 지거나 시간 초과가 발생하면 x 번 재 시도합니다.

그럴 수 있습니까?

+0

는 참조 https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/ src/BuildingBlocks/Resilience/Resilience.Http/ResilientHttpClient.cs –

+0

@Peter; 고마워, 그걸 들여다 보겠다.하지만 좀 더 가볍거나 네이티브 일 수 있기를 바란다. 닷넷 – Michel

+0

AFAIK 상자에는 아무것도 없다. –

답변

0

내가 아는 한, 그러한 메커니즘은 없습니다. 그러나 모든 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; 
당신은 폴리를 사용하여 작업을 수행 할 수 있습니다
+0

그리고 상태 코드가 과도기인지 또는 회로 차단기를 추가했는지 감지하여이를 확장하려고하면 Polly와 같은 기존 라이브러리를 사용하는 것이 좋습니다. –