Bu ish taklifidan nima sizni qiziqtirdi va nima uchun oldingi ish joyingizdan ketmoqdasiz?
Golang
Qo'shimcha ish vaqti haqida nima fikrdasan?
Menga savolingiz bormi?
Go konventsiyasi WaitGroup va qaytariladigan turlar haqida nima deydi (interfeyslarni qabul qilish, aniq turlarni qaytarish)?
Bufferli kanal orqali bir gorutina to'g'ridan-to'g'ri boshqa gorutina yozishi mumkinmi?
PostgreSQL'da B-tree dan tashqari qanday indeks turlarini ishlatdingiz?
Qidiruv xizmati ishlab chiqishda arxitektura qarorlarini qabul qilishda sizning rolingiz nima edi?
Siz klassik ishchi havzasini yozishni xohlaysizmi?
Qaysi texnologiya/asbobni ishlatyapsiz?
Ish faqat Rossiya Federatsiyasining hududida ruxsat etiladimi?
// Mijoz bajarish uchun ma'lumotlar bilan birga (Task) ob'ektini uzatadi, // bizning misolimizda bo'sh tuzilmani ishlatamiz. // // Boshqaruvchi maksimal N vazifani bir vaqtning o'zida bajarishi mumkin, // va X vazifa navbatda bo'lishi mumkin. // Agar navbatda joy bo'lmasa, darhol mijozga xato qaytariladi. // // Vazifa bo'sh ishlovchilar bo'lsa, uni bajarishga oladi. // Biz bajarish davomiyligini time.Sleep(5*time.Second) bilan simulyatsiya qilamiz. // Har bir vazifa tugagach, navbatdagi vazifani olamiz. // Agar navbat bo'sh bo'lsa, yangi vazifalarni kutamiz. // // Yulduzcha bilan: Task tuzilmasini kengaytirish va vazifalar holatini alohida so'rov orqali olish. package scheduler type Scheduler interface { AddTask(t Task) error Close() } type scheduler struct { queue chan Task wg sync.WaitGroup } func New(workers, queue int) Scheduler { // amalga oshirish kutilmoqda } type Task interface { Do() }
func New(workers, queue, int) Scheduler { s := &scheduler { queue := make(chan Task, queue) for i := 0; i < workers; i++ { wg.Add(1) go func() { defer wg.Done() for task := range s.queue { task.Do() } }() } } return s } func (s *scheduler) Close() { close(s.queue) s.wg.Wait() } type Task interface { Do() }
Amalda kontekstlarni ishlatdingizmi? Hikoya qil.
ELKda qanday hujjatlar saqlangan edi?
CTE ni ishlatdingizmi? Bu nima ekanligini aytib bering.
Agar biz buni qilishni istasak, vazifalarda yuzaga keladigan xatoliklarni tashqaridan qanday boshqarishimiz mumkin?
SELECT FOR UPDATE va SELECT FOR SHARE o'rtasidagi farq nima?
Amalda ma'lumotlar poygasi hali ham bormi? Ayniqsa, kalitlarni qaytaradigan Keys metodida?
Faqat replika ustida indeks yaratish mumkinmi, masterda emasmi?
PostgreSQL'da replikatsiya turlari