HttpClientBuilderExtensions.SetHandlerLifetime Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- builder
- IHttpClientBuilder
- 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.