Ko saka Go konvencija par WaitGroup izmantošanu un atgriežamajiem tipiem (pieņemot interfeisus, atgriežot konkrētus tipus)?
Golang
Vai nolēmi rakstīt WaitGroup, jo parādījās kanāls vai tāpēc, ka nolēmi rakstīt goroutines kaut kam?
Vai jums ir jautājumi man?
Vai vari aprakstīt, ko izmanto, lai lasītu kanālu darba goroutine?
Vai viena gorutina var tieši rakstīt citā gorutinā ar buferētu kanālu?
Vai vēlaties uzrakstīt klasisko worker pool?
Kādu tehnoloģiju/rīku izmantojat?
Kādus indeksu tipus PostgreSQL izmantojāt, izņemot B-tree?
// Klients nodod objektu (Task) ar datiem, lai izpilda uzdevumu, // mūsu piemērā izmantosim tukšu struktūru. // // Vadītājs var apstrādāt ne vairāk kā N uzdevumu vienlaicīgi, // un ne vairāk kā X uzdevumi var būt rindā. // Ja nav vietas rindā, tūlīt atgriežam kļūdu klientam. // // Uzdevums tiek ņemts apstrādei, ja ir brīvi apstrādātāji. // Simulējam apstrādes ilgumu ar time.Sleep(5*time.Second). // Tiklīdz viens uzdevums pabeidzas, ņemam nākamo no rindas. // Ja rinda ir tukša, gaidām jaunas uzdevumus no klientiem. // // Ar zvaigznīti: papildiniet Task struktūru un iegūstiet uzdevumu statusus caur atsevišķu pieprasījumu. 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 { // gaida īstenošanu } type Task interface { Do() }
Kāda bija tava loma arhitektūras lēmumu pieņemšanā meklēšanas pakalpojuma izstrādes laikā?
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() }
Vai esat izmantojis CTE? Pastāstiet, kas tas ir.
Kā mēs varētu ārēji apstrādāt kļūdas, kas notiek uzdevumos, ja mēs to vēlētos?
Vai praksē esi izmantojis kontekstus? Pastāsti.
Vai darbs ir atļauts tikai Krievijas Federācijas teritorijā?
Kāda ir atšķirība starp SELECT FOR UPDATE un SELECT FOR SHARE?
Vai ir iespējams izveidot indeksu tikai replikācijā, bet ne galvenajā?
Vai joprojām ir datu sacensības īstenošanā? Īpaši Keys metodē, kas atgriež atslēgu šķēli?
Replikācijas veidi PostgreSQL
Vai jums ir pieredze Kubernetes operatoru rakstīšanā, operatoru administrēšanā, Helm Chart?