Sobes.tech
Junior — Middle

Koje metode se mogu koristiti za sprečavanje greške 500 u slučaju isteka vremena čekanja na odgovor baze podataka?

sobes.tech АИ

Одговор од АИ

Da biste izbegli grešku 500 uzrokovanu istekom vremena čekanja na odgovor od baze podataka u Go, možete koristiti nekoliko pristupa:

  1. Kontekst sa timeout-om — koristite context.WithTimeout za ograničenje vremena izvršenja upita na bazu.

  2. Pool konekcija — pravilno konfigurišite pool konekcija da biste izbegli blokade i kašnjenja.

  3. Obrada grešaka — pravilno obradite greške timeout-a i vraćajte razumljive odgovore klijentu.

Primer korišćenja konteksta sa timeout-om:

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) {
        // obrada timeout-a
    } else {
        // druga greška
    }
}

Ovaj pristup pomaže da se izbegnu blokade i da se kontroliše vreme čekanja na odgovor od baze.