Junior — Middle
Verilənlər bazasından cavab vaxtının bitməsi halında 500 səhvinin yaranmasının qarşısını almaq üçün hansı metodlar istifadə oluna bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da verilənlər bazasından cavab almaqda vaxtın bitməsi səbəbindən 500 xətasının qarşısını almaq üçün bir neçə yanaşma mövcuddur:
-
Timeout ilə kontekst —
context.WithTimeoutistifadə edərək verilənlər bazasına sorğunun icra müddətini məhdudlaşdırın. -
Əlaqə hovuzu — əlaqə hovuzunu düzgün tənzimləyərək bloklamaları və gecikmələri qarşısını alın.
-
Xəta idarəetməsi — vaxtın bitməsi xətalarını düzgün idarə edin və müştəriyə başa düşülən cavablar verin.
Timeout ilə kontekst istifadəsinin nümunəsi:
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) {
// vaxtın bitməsi ilə bağlı idarəetmə
} else {
// başqa xəta
}
}
Bu yanaşma bloklamaları qarşısını almağa və verilənlər bazasından cavab gözləmə vaxtını nəzarətdə saxlamağa kömək edir.