რა ამბობს Go კონვენცია WaitGroup-ის გამოყენებასა და დაბრუნებულ ტიპებზე (ინტერფეისების მიღება, კონკრეტული ტიპების დაბრუნება)?
Golang
შენ გადაწყვიტე WaitGroup დაწერა, რადგან არხი გამოჩნდა თუ რაღაცისთვის goroutines დაწერა გადაწყვიტე?
მაქვს კითხვები ჩემთვის?
შეგიძლიათ აღწეროთ, რა იყენებთ სამუშაო goroutine-ში არხის მოსაკითხად?
შესაძლებელია თუ არა ბუფერული არხის საშუალებით ერთი გორუტინა პირდაპირ დაწეროს სხვა გორუტინში?
თქვენ გსურთ კლასიკური worker pool დაწერა?
რომელი ტექნოლოგია/საშუალება გამოიყენე?
PostgreSQL-ში B-tree-ს გარდა რა ტიპის ინდექსებს იყენებდით?
// კლიენტი გადასცემს მონაცემებით ობიექტს (Task), // ჩვენს მაგალითში გამოვიყენებთ ცარიელ სტრუქტურას. // // მენეჯერი შეიძლება ერთდროულად პროცესორით უმეტესად N დავალებას, // და არა მეტი X დავალება შეიძლება იყოს რიგში. // თუ რიგში ადგილი არ არის, დაუყოვნებლივ ვუბრუნებთ შეცდომას მომხმარებელს. // // დავალება მიიღება პროცესში, თუ თავისუფალი დამუშავებლები არსებობს. // ჩვენ სიმულაციას ვაკეთებთ პროცესის ხანგრძლივობის დროს time.Sleep(5*time.Second). // როგორც კი ერთი დავალება დასრულდება, ვიღებთ შემდეგს რიგიდან. // თუ რიგი ცარიელია, ველით ახალი დავალებებს მომხმარებლებისგან. // // ვარსკვლავით: გააფართოვეთ Task სტრუქტურა და მიიღეთ დავალებების სტატუსები ცალკე მოთხოვნით. 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 { // განხორციელება ელოდება } 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() }
CTE-ს გამოიყენეთ? რა არის ეს, გვითხარით.
როგორ შეგვიძლია გარედან დავამუშავოთ დავალებებში მომხდარი შეცდომები, თუ ამის გაკეთება გვინდა?
პრაქტიკაში კონტექსტებს იყენებდი? მითხარი.
სამუშაო მხოლოდ რუსეთის ფედერაციის ტერიტორიაზეა დაშვებული?
რა განსხვავებაა SELECT FOR UPDATE და SELECT FOR SHARE-ს შორის?
შესაძლებელია მხოლოდ რეპლიკაზე შექმნა ინდექსი, მაგრამ არა მასტერზე?
კითხვები:4268b3cd-316f-4d3c-8f97-e1b19661346e
PostgreSQL-ში რეპლიკაციის ტიპები
გაქვს გამოცდილება Kubernetes ოპერატორების დაწერაში, ოპერატორების ადმინისტრირებაში, Helm Chart-ის გამოყენებაში?