Как предложил @ Ответ Джона Ву на Stackoverflow . Я использую следующий код для выполнения одновременных запросов HTTP HTTP на том же хосте для отправки SMS
public async Task SendBulk(List<string> recipentURLs)
{
using (var client = new HttpClient())
{
//Start requests for all of them
var requests = recipentURLs.Select(url => client.GetAsync(url)).ToList();
//Wait for all the requests to finish
await Task.WhenAll(requests);
}
}
Теперь у меня возникла исключительная ситуация: 1008 *
System.Net.Http.HttpRequestException: An error occurred while sending the request.
---> System.IO.IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond..
---> System.Net.Sockets.SocketException (10060): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
API, которому я отправляю запросы, не требует ответа (поскольку я использую его только для отправки смс).
Я использую это в задании Backgroud с помощью HangFire. Так что я в порядке, если это займет много времени.
Сейчас я ищу эффективный способ отправки нескольких HTTP-запросов на один и тот же хост.
Как можно безопасно обработать все эти параллельные запросы и повторить попытку в случае сбоя любого из них?
Также в настоящее время я изучаю, что из-за HTTP Throttling я не могу использовать 2 подключения к одному хосту?