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:
-
Kontekst sa timeout-om — koristite
context.WithTimeoutza ograničenje vremena izvršenja upita na bazu. -
Pool konekcija — pravilno konfigurišite pool konekcija da biste izbegli blokade i kašnjenja.
-
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.