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

  1. Kontext s časovým limitom — použite context.WithTimeout na obmedzenie doby vykonávania dotazu do databázy.

  2. Pool pripojení — správne nakonfigurujte pool pripojení, aby ste predišli zablokovaniam a oneskoreniam.

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