HttpClientFactory Утечка памяти - PullRequest
0 голосов
/ 14 октября 2018

В моем консольном приложении c # (.net 4.6.1) я должен делать вызовы API (Get / Post / Put / Delete) и т. Д. Для случайных конечных точек.Детали URL, полезной нагрузки и т. Д. Взяты из таблицы базы данных.Консольное приложение получает экземпляр httpClientFactory, как показано ниже

var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
var httpClientFactory = serviceProvider.GetService<IHttpClientFactory>();

Для каждой записи, получаемой из таблицы, я вызываю метод для вызова API.К этому методу я передаю httpClientFactory.В этом методе я создаю и использую HttpClient следующим образом.

var httpClient = httpClientFactory.CreateClient();
//set headers
//make api call, for ex  var response = await httpClient.PutAsync(apiTask.URL, content);
//Return resposne

Я не могу избавиться от httpClient.Поскольку я вижу использование памяти, оно продолжает расти, и я не вижу, что оно падает даже после нескольких часов.

Я следовал следующей статье https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-2.1

Я правильно ее использую?,Должен ли я использовать "using (httpClient)"

1 Ответ

0 голосов
/ 14 октября 2018

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

check this, это и это , также стоит взглянуть на это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...