Junior — Middle
Aké metódy je možné použiť na prevenciu chyby 500 v prípade vypršania časového limitu odpovede databázy?
sobes.tech AI
Odpoveď od AI
Ak chcete zabrániť chybe 500 spôsobenej vypršaním časového limitu na odpoveď z databázy v Go, môžete použiť niekoľko prístupov:
-
Kontext s časovým limitom — použite
context.WithTimeoutna obmedzenie doby vykonávania dotazu do databázy. -
Pool pripojení — správne nakonfigurujte pool pripojení, aby ste predišli zablokovaniam a oneskoreniam.
-
Spracovanie chýb — správne spracujte chyby časového limitu a vracajte zrozumiteľné odpovede klientovi.
Príklad použitia kontextu s časovým limitom:
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) {
// spracovanie časového limitu
} else {
// iná chyba
}
}
Tento prístup pomáha vyhnúť sa zaseknutiam a kontrolovať dobu čakania na odpoveď z databázy.