Sobes.tech
Senior

Tajribangizdan ajralib turadigan eng katta yoki eng qiyin vazifa bo'ldimi?

sobes.tech AI

AIdan javob

Go tilida yuqori yuklangan taqsimlangan xizmatni ishlab chiqish bo'yicha loyiha eng qiyin vazifalardan biri bo'ldi, u kuniga millionlab so'rovlarni minimal kechikish bilan ishlardi. Loyihada, goroutine'larni samarali boshqarish, ma'lumotlar bazasi bilan ishlashni optimallashtirish va tizimning nosozlikka chidamliligini ta'minlash zarur edi.

Kontekst yordamida goroutine'larni boshqarish uchun kod misoli:

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

ch := make(chan string)
go func() {
    // ish simulyatsiyasi
    time.Sleep(2 * time.Second)
    ch <- "natija"
}()

select {
case res := <-ch:
    fmt.Println("Olingan natija:", res)
case <-ctx.Done():
    fmt.Println("Kutish vaqti tugadi")
}