Junior — Middle
Welke methoden kunnen worden gebruikt om een fout 500 te voorkomen in het geval dat de responstijd van de database verloopt?
sobes.tech AI
Antwoord van AI
Om de fout 500 te voorkomen die wordt veroorzaakt door een timeout bij het wachten op een antwoord van de database in Go, kunnen verschillende benaderingen worden gebruikt:
-
Context met timeout — gebruik
context.WithTimeoutom de uitvoeringstijd van de query te beperken. -
Connection pool — configureer de connection pool correct om blokkades en vertragingen te voorkomen.
-
Foutafhandeling — behandel timeout-fouten correct en geef begrijpelijke antwoorden aan de client.
Voorbeeld van het gebruik van een context met timeout:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
err := db.QueryRowContext(ctx, "SELECT ...").Scan(&result)
if err != nil {
if errors.Is(err, context.DeadlineExceeded) {
// timeout-afhandeling
} else {
// andere fout
}
}
Deze aanpak helpt om vastlopen te voorkomen en de wachttijd op het antwoord van de database te controleren.