Sobes.tech
Junior — Middle

Ma'lumotlar bazasidan javob kutish vaqti tugagan taqdirda 500 xatosining yuzaga kelishini oldini olish uchun qanday usullar qo'llanilishi mumkin?

sobes.tech AI

AIdan javob

Go'da ma'lumotlar bazasidan javob olishda kutish vaqti tugashi sababli yuzaga keladigan 500 xatoni oldini olish uchun bir nechta yondashuvlar mavjud:

  1. Vaqt bilan kontekstcontext.WithTimeout dan foydalanib, ma'lumotlar bazasiga so'rov yuborish vaqtini cheklash.

  2. Ulanish havzasi — ulanish havzasini to'g'ri sozlash, blokirovkalar va kechikishlarni oldini olish uchun.

  3. Xatolarni boshqarish — vaqt tugash xatolarini to'g'ri boshqarish va mijozga tushunarli javoblar yuborish.

Vaqt bilan kontekstdan foydalanish misoli:

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) {
        // vaqt tugashini boshqarish
    } else {
        // boshqa xato
    }
}

Ushbu yondashuv to'siqlarni oldini olishga va ma'lumotlar bazasidan javob kutish vaqtini nazorat qilishga yordam beradi.