应用Timeout

This commit is contained in:
xljiulang 2021-08-12 22:40:12 +08:00
parent 1dead3f801
commit 5c7145c056

View File

@ -21,7 +21,6 @@ namespace FastGithub.Http
{ {
private readonly DomainConfig domainConfig; private readonly DomainConfig domainConfig;
private readonly IDomainResolver domainResolver; private readonly IDomainResolver domainResolver;
private readonly TimeSpan defaltTimeout = TimeSpan.FromMinutes(2d);
/// <summary> /// <summary>
/// HttpClientHandler /// HttpClientHandler
@ -76,11 +75,18 @@ namespace FastGithub.Http
} }
request.RequestUri = uriBuilder.Uri; request.RequestUri = uriBuilder.Uri;
using var timeoutTokenSource = new CancellationTokenSource(this.domainConfig.Timeout ?? defaltTimeout);
if (this.domainConfig.Timeout != null)
{
using var timeoutTokenSource = new CancellationTokenSource(this.domainConfig.Timeout.Value);
using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeoutTokenSource.Token); using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, timeoutTokenSource.Token);
return await base.SendAsync(request, linkedTokenSource.Token);
}
else
{
return await base.SendAsync(request, cancellationToken); return await base.SendAsync(request, cancellationToken);
} }
}
/// <summary> /// <summary>
/// 创建转发代理的httpHandler /// 创建转发代理的httpHandler