Sobes.tech
Junior — Middle

Tudna példát adni arra, hogyan lehet közbenső réteget alkalmazni minden kérés feldolgozási idejének értékelésére?

sobes.tech MI

Válasz az MI-től

A kérés feldolgozási idejének értékelésére szolgáló közbenső réteg (middleware) gyakran a hívás elfogásával és a feldolgozás előtti és utáni idő mérésével valósul meg.

Példa C#-ban az ASP.NET Core middleware használatával:

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); // átadja a vezérlést a következő komponensnek

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

        Console.WriteLine($"Kérés [{context.Request.Method}] {context.Request.Path} {elapsedMs} ms volt.");
    }
}

// A Startup.cs vagy Program.cs fájlban adjuk hozzá a middleware-t:
// app.UseMiddleware<RequestTimingMiddleware>();

Ez a közbenső réteg méri minden HTTP-kérés feldolgozási idejét, és az eredményt a konzolon jeleníti meg. Ez a megközelítés segít a teljesítmény nyomon követésében és a szűk keresztmetszetek felismerésében.