Sobes.tech
Junior — Middle

Können Sie ein Beispiel für die Verwendung einer Zwischenschicht zur Schätzung der Bearbeitungsdauer jeder Anfrage geben?

sobes.tech KI

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