Как внедрить проверки работоспособности в зависимости от времени ответа - PullRequest
0 голосов
/ 06 мая 2020

У меня два 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) Как лучше всего реализовать время отклика? Фильтр, промежуточное ПО что-то еще?

...