Я создал экземпляр HostedService:
Код: Выделить всё
public class MyHostedService : IHostedService
{
public MyHostedService(IMyWebServiceClient MyWebServiceClient)
{
...
}
public Task StartAsync(CancellationToken cancellationToken)
{
while (!cancellationToken.IsCancellationRequested)
{
var result = await myWebServiceClient.CallSomeWebApi();
await Task.Delay(5000, cancellationToken);
}
return Task.CompletedTask;
}
}
Код: Выделить всё
public class MyWebServiceClient: IMyWebServiceClient
{
private readonly IHttpClientFactory httpClientFactory;
public MyWebServiceClient(IHttpClientFactory httpClientFactory)
{
this.httpClientFactory = httpClientFactory;
}
public async Task CallSomeWebApi()
{
using (var httpClient = httpClientFactory.CreateClient())
{
var requestMessage = new HttpRequestMessage(...);
var response = await httpClient.SendAsync(requestMessage);
}
}
}
Код: Выделить всё
public void ConfigureServices(IServiceCollection services)
{
....
services.AddHttpClient();
services.AddSingleton();
services.AddHostedService();
....
}
Код: Выделить всё
var httpClient = httpClientFactory.CreateClient()
Могут ли из-за этого возникнуть какие-либо побочные эффекты? Я тестирую какой-то веб-сервер и довольно часто получаю исключение.
Запрос был отменен из-за настроенного HttpClient.Timeout, равного 100 секундам.
Может ли это быть вызвано вышеописанной реализацией или это определенно проблема сервера?
Подробнее здесь: https://stackoverflow.com/questions/702 ... t-practice
Мобильная версия