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
Параметры
- builder
- IHttpClientBuilder
- handlerLifetime
- TimeSpan
Возвращаемое значение
Комментарии
Реализация по умолчанию IHttpClientFactory будет объединять экземпляры, HttpMessageHandler созданные фабрикой, для сокращения потребления ресурсов. Этот параметр настраивает время, в течение которого обработчик может быть включен в пул, прежде чем он будет запланирован для удаления из пула и удаления.
Создание пулов обработчиков желательно, поскольку каждый обработчик обычно управляет собственными базовыми HTTP-подключениями. Создание лишних обработчиков может привести к задержке подключения. Некоторые обработчики также сохраняют подключения открытыми на неопределенный срок, что может помешать обработчику реагировать на изменения DNS. Значение handlerLifetime
должно выбираться с пониманием требований приложения к реагированию на изменения в сетевой среде.
Истечение срока действия обработчика не приведет к немедленному удалению обработчика. Обработчик с истекшим сроком действия помещается в отдельный пул, который обрабатывается с интервалами для удаления обработчиков только в том случае, если они становятся недоступными. Использование долгоживущих HttpClient экземпляров не позволит удалить базовый HttpMessageHandler объект до тех пор, пока не будут собраны все ссылки на мусор.