network异常

This commit is contained in:
老九 2021-11-26 22:21:58 +08:00
parent f5e7e4c0d0
commit 59fde288b5

View File

@ -24,8 +24,8 @@ namespace FastGithub.DomainResolve
private readonly IMemoryCache domainAddressCache = new MemoryCache(Options.Create(new MemoryCacheOptions()));
private record AddressElapsed(IPAddress Address, TimeSpan Elapsed);
private readonly TimeSpan brokeElapsedExpiration = TimeSpan.FromMinutes(1d);
private readonly TimeSpan normaleElapsedExpiration = TimeSpan.FromMinutes(5d);
private readonly TimeSpan problemElapsedExpiration = TimeSpan.FromMinutes(1d);
private readonly TimeSpan normalElapsedExpiration = TimeSpan.FromMinutes(5d);
private readonly TimeSpan connectTimeout = TimeSpan.FromSeconds(5d);
private readonly IMemoryCache addressElapsedCache = new MemoryCache(Options.Create(new MemoryCacheOptions()));
@ -107,14 +107,14 @@ namespace FastGithub.DomainResolve
await socket.ConnectAsync(endPoint, linkedTokenSource.Token);
addressElapsed = new AddressElapsed(endPoint.Address, stopWatch.Elapsed);
return this.addressElapsedCache.Set(endPoint, addressElapsed, this.normaleElapsedExpiration);
return this.addressElapsedCache.Set(endPoint, addressElapsed, this.normalElapsedExpiration);
}
catch (Exception ex)
{
cancellationToken.ThrowIfCancellationRequested();
addressElapsed = new AddressElapsed(endPoint.Address, TimeSpan.MaxValue);
var expiration = IsLocalNetworkProblem(ex) ? this.brokeElapsedExpiration : this.normaleElapsedExpiration;
var expiration = IsLocalNetworkProblem(ex) ? this.problemElapsedExpiration : this.normalElapsedExpiration;
return this.addressElapsedCache.Set(endPoint, addressElapsed, expiration);
}
finally
@ -136,9 +136,7 @@ namespace FastGithub.DomainResolve
}
var code = socketException.SocketErrorCode;
return code == SocketError.NetworkDown ||
code == SocketError.NetworkUnreachable ||
code == SocketError.HostUnreachable;
return code == SocketError.NetworkDown || code == SocketError.NetworkUnreachable;
}
}
}