Sobes.tech
Back to questions
Junior — Middle
71

Можете привести пример применения промежуточного слоя для оценки продолжительности обработки каждого запроса?

Answer from AI

sobes.tech AI

Промежуточный слой (middleware) для оценки продолжительности обработки запроса часто реализуется с помощью перехвата вызова и измерения времени до и после обработки.

Пример на C# с использованием ASP.NET Core middleware:

public class RequestTimingMiddleware
{
    private readonly RequestDelegate _next;

    public RequestTimingMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        var stopwatch = Stopwatch.StartNew();

        await _next(context); // передаем управление следующему компоненту

        stopwatch.Stop();
        var elapsedMs = stopwatch.ElapsedMilliseconds;

        Console.WriteLine($"Request [{context.Request.Method}] {context.Request.Path} took {elapsedMs} ms.");
    }
}

// В Startup.cs или Program.cs добавляем middleware:
// app.UseMiddleware<RequestTimingMiddleware>();

Этот промежуточный слой измеряет время обработки каждого HTTP-запроса и выводит результат в консоль. Такой подход помогает мониторить производительность и выявлять узкие места.