Junior — Middle
Milyen módszerek alkalmazhatók az 500-as hiba megelőzésére, ha az adatbázis válaszideje lejár?
sobes.tech MI
Válasz az MI-től
A Go-ban az adatbázisból való válasz várakozási idő túllépése miatti 500-as hiba elkerülése érdekében több megközelítés is alkalmazható:
-
Időkorlátos kontextus — használja a
context.WithTimeout-ot az adatbázis lekérdezés végrehajtási idejének korlátozására. -
Kapcsolat medence — helyesen konfigurálja a kapcsolat medencét, hogy elkerülje a blokkolásokat és késéseket.
-
Hibakezelés — helyesen kezelje az időkorlát hibákat, és adjon érthető választ az ügyfélnek.
Példa időkorlátos kontextus használatára:
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) {
// időkorlát kezelése
} else {
// más hiba
}
}
Ez a megközelítés segít elkerülni a blokkolásokat és ellenőrizni a válasz várakozási idejét az adatbázistól.