Compartilhar via


HttpClientBuilderExtensions.SetHandlerLifetime Método

Definição

Define o período em que uma instância de HttpMessageHandler pode ser reutilizada. Cada cliente nomeado pode ter o próprio valor de tempo de vida do manipulador configurado. O valor padrão é dois minutos. Defina o tempo de vida como InfiniteTimeSpan para desabilitar a expiração do manipulador.

public:
[System::Runtime::CompilerServices::Extension]
 static Microsoft::Extensions::DependencyInjection::IHttpClientBuilder ^ SetHandlerLifetime(Microsoft::Extensions::DependencyInjection::IHttpClientBuilder ^ builder, TimeSpan handlerLifetime);
public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder SetHandlerLifetime (this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, TimeSpan handlerLifetime);
static member SetHandlerLifetime : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * TimeSpan -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function SetHandlerLifetime (builder As IHttpClientBuilder, handlerLifetime As TimeSpan) As IHttpClientBuilder

Parâmetros

handlerLifetime
TimeSpan

Retornos

Comentários

A implementação padrão de IHttpClientFactory agrupará as HttpMessageHandler instâncias criadas pela fábrica para reduzir o consumo de recursos. Essa configuração configura a quantidade de tempo em que um manipulador pode ser agrupado antes de ser agendado para remoção do pool e descarte.

O pooling de manipuladores é interessante porque cada manipulador normalmente gerencia suas próprias conexões de HTTP subjacentes. Criar mais manipuladores do que o necessário pode resultar em atrasos de conexão. Alguns manipuladores também mantêm as conexões abertas indefinidamente, o que pode impedir que o manipulador reaja às alterações de DNS. O valor de handlerLifetime deve ser escolhido com uma compreensão do requisito do aplicativo para responder às alterações no ambiente de rede.

A expiração de um manipulador não descartará imediatamente o manipulador. Um manipulador expirado é colocado em um pool separado que é processado em intervalos para descartar manipuladores somente quando eles se tornam inacessíveis. O uso de instâncias de HttpClient longa duração HttpMessageHandler impedirá que o subjacente seja descartado até que todas as referências sejam coletadas por lixo.

Aplica-se a