Junior — Middle
Ce metode pot fi utilizate pentru a preveni eroarea 500 în cazul expirării timpului de așteptare a răspunsului bazei de date?
sobes.tech AI
Răspuns de la AI
Pentru a evita eroarea 500 cauzată de expirarea timpului de așteptare a răspunsului de la baza de date în Go, se pot folosi mai multe abordări:
-
Context cu timeout — folosiți
context.WithTimeoutpentru a limita timpul de execuție al interogării către bază. -
Pool de conexiuni — configurați corect pool-ul de conexiuni pentru a evita blocajele și întârzierile.
-
Gestionarea erorilor — tratați corect erorile de timeout și returnați răspunsuri clare clientului.
Exemplu de utilizare a unui context cu 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) {
// gestionarea timeout-ului
} else {
// altă eroare
}
}
Această abordare ajută la evitarea blocajelor și la controlul timpului de așteptare pentru răspunsul de la bază.