Sobes.tech
Junior — Middle

Quelles méthodes peuvent être utilisées pour prévenir l'erreur 500 en cas d'expiration du délai d'attente de la réponse de la base de données?

sobes.tech IA

Réponse de l'IA

Pour éviter l'erreur 500 due à un délai d'attente dépassé lors de la réponse de la base de données en Go, plusieurs approches peuvent être utilisées :

  1. Contexte avec délai d'expiration — utiliser context.WithTimeout pour limiter le temps d'exécution de la requête.

  2. Pool de connexions — configurer correctement le pool de connexions pour éviter les blocages et les retards.

  3. Gestion des erreurs — gérer correctement les erreurs de délai d'attente et renvoyer des réponses compréhensibles au client.

Exemple d'utilisation d'un contexte avec délai d'expiration :

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) {
        // gestion du délai d'attente
    } else {
        // autre erreur
    }
}

Cette approche permet d'éviter les blocages et de contrôler le temps d'attente de la réponse de la base.