Senior
Təcrübənizdən vurğulamaq istədiyiniz ən böyük və ya ən çətin vəzifə olubmu?
sobes.tech Süni İntellekt
AI-dan cavab
Yüksək yüklü paylanmış xidməti Go dilində inkişaf etdirmək üçün ən çətin tapşırıqlardan biri idi; bu xidmət gündə milyonlarla sorğunu minimal gecikmə ilə işləyirdi. Layihə çərçivəsində, goroutine-lərin səmərəli idarə olunması, verilənlər bazası ilə işləmənin optimallaşdırılması və sistemin qəza davamlılığının təmin edilməsi lazım idi.
Kontekst istifadə edərək goroutine-ləri idarə etmək üçün nümunə kod:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
ch := make(chan string)
go func() {
// işin simulyasiyası
time.Sleep(2 * time.Second)
ch <- "nəticə"
}()
select {
case res := <-ch:
fmt.Println("Alınan nəticə:", res)
case <-ctx.Done():
fmt.Println("Gözləmə vaxtı bitdi")
}