Sobes.tech
Junior — Middle

Можете ли да дадете пример за използване на междинен слой за оценка на продължителността на обработка на всяка заявка?

sobes.tech AI

Отговор от AI

Задният слой (middleware) за оценка на продължителността на обработката на заявката често се реализира чрез прихващане на извикването и измерване на времето преди и след обработката.

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

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($"Заявката [{context.Request.Method}] {context.Request.Path} отне {elapsedMs} ms.");
    }
}

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

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