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.