Параллельные запросы и общий HttpClient через ASP.NET CORE WEB API - PullRequest
0 голосов
/ 03 декабря 2018

Если мы повторно используем HttpClient, как в SingleHttpClientInstanceController ниже, что, если поступит несколько запросов и текущий запрос использует общий HttpClient, будет ли этот случай блокировать последующие запросы?

У меня есть веб-API, который принимает запрос и вызывает внешние веб-службы, если при вызове внешних блоков веб-API он будет блокировать все поступающие запросы.

public class SingleHttpClientInstanceController : ApiController
{
    private static readonly HttpClient httpClient;

    static SingleHttpClientInstanceController()
    {
        httpClient = new HttpClient();
    }

    // This method uses the shared instance of HttpClient for every call to GetProductAsync.
    public async Task<Product> GetProductAsync(string id)
    {
        var hostName = HttpContext.Current.Request.Url.Host;
        var result = await httpClient.GetStringAsync(string.Format("http://{0}:8080/api/...", hostName));
        return new Product { Name = result };
    }
}

приведенный выше код взят изссылка ниже

https://docs.microsoft.com/en-us/azure/architecture/antipatterns/improper-instantiation/

...