Sobes.tech
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:

  1. Context cu timeout — folosiți context.WithTimeout pentru a limita timpul de execuție al interogării către bază.

  2. Pool de conexiuni — configurați corect pool-ul de conexiuni pentru a evita blocajele și întârzierile.

  3. 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ă.