Sobes.tech
Junior — Middle

Puoi fare un esempio di utilizzo di uno strato intermedio per stimare la durata dell'elaborazione di ogni richiesta?

sobes.tech AI

Risposta dell'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-запроса и выводит результат в консоль. Такой подход помогает мониторить производительность и выявлять узкие места.