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 αιτήματος και εμφανίζει το αποτέλεσμα στην κονσόλα. Αυτή η προσέγγιση βοηθά στην παρακολούθηση της απόδοσης και στην ανίχνευση σημείων συμφόρησης.