HttpClientBuilderExtensions.SetHandlerLifetime Метод

Определение

Задает период времени, в течение которого экземпляр HttpMessageHandler может использоваться повторно. Для каждого именованного клиента можно указать свое значение времени существования настроенного обработчика. Значение по умолчанию — две минуты. Установите значение InfiniteTimeSpan, чтобы отключить срок действия обработчика.

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

Параметры

handlerLifetime
TimeSpan

Возвращаемое значение

Комментарии

Реализация по умолчанию IHttpClientFactory будет объединять экземпляры, HttpMessageHandler созданные фабрикой, для сокращения потребления ресурсов. Этот параметр настраивает время, в течение которого обработчик может быть включен в пул, прежде чем он будет запланирован для удаления из пула и удаления.

Создание пулов обработчиков желательно, поскольку каждый обработчик обычно управляет собственными базовыми HTTP-подключениями. Создание лишних обработчиков может привести к задержке подключения. Некоторые обработчики также сохраняют подключения открытыми на неопределенный срок, что может помешать обработчику реагировать на изменения DNS. Значение handlerLifetime должно выбираться с пониманием требований приложения к реагированию на изменения в сетевой среде.

Истечение срока действия обработчика не приведет к немедленному удалению обработчика. Обработчик с истекшим сроком действия помещается в отдельный пул, который обрабатывается с интервалами для удаления обработчиков только в том случае, если они становятся недоступными. Использование долгоживущих HttpClient экземпляров не позволит удалить базовый HttpMessageHandler объект до тех пор, пока не будут собраны все ссылки на мусор.

Применяется к