У меня два API в. net core 3.1. Я хочу реализовать простую проверку работоспособности о времени ответа. Но проблема в том, что первый API выполняет простую транзакцию и получает результаты за несколько миллисекунд, второй потому, что извлекает результаты из другого API, реализует бизнес-логи c, сохраняет в базе данных, а затем извлекает результаты, этот ответ составляет около секунды.
В результате я хочу реализовать настраиваемую проверку работоспособности второго API, чтобы, если время ответа превышает 5 секунд, API неработоспособен, в противном случае он исправен.
Я читал эту статью https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?view=aspnetcore-3.1 Думаю, что-то вроде этого
public class ExampleHealthCheck : IHealthCheck
{
public Task<HealthCheckResult> CheckHealthAsync(
HealthCheckContext context,
CancellationToken cancellationToken = default(CancellationToken))
{
var responseTime= await GetResponseTimeAsync();
if (responseTime < 5)
{
return Task.FromResult(
HealthCheckResult.Healthy("A healthy result."));
}
return Task.FromResult(
HealthCheckResult.Unhealthy("An unhealthy result."));
}
}
теперь у меня два вопроса
1) Правильный ли способ что-то реализовать вот так или есть другой способ, которого я не знаю?
2) Как лучше всего реализовать время отклика? Фильтр, промежуточное ПО что-то еще?