Sobes.tech

Έχετε ερωτήσεις για μένα;

Senior
169

Τι λέει η σύμβαση Go σχετικά με τη χρήση του WaitGroup και των τύπων επιστροφής (αποδοχή διεπαφών, επιστροφή συγκεκριμένων τύπων);

Senior
168

Μπορεί μια goroutine να γράψει απευθείας σε μια άλλη goroutine σε ένα buffered κανάλι;

Senior
168

Αποφάσισες να γράψεις WaitGroup επειδή εμφανίστηκε ένα κανάλι ή επειδή αποφάσισες να γράψεις goroutines για κάτι;

Senior
168

Ποια τεχνολογία/εργαλείο χρησιμοποιείς;

Senior
164

// Ο πελάτης μεταβιβάζει ένα αντικείμενο (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() }

Senior
164

Ποιοι τύποι ευρετηρίων υπάρχουν στο PostgreSQL εκτός από το B-tree;

Senior
163

Έχεις χρησιμοποιήσει CTE; Πες μου τι είναι.

Senior
162

Ποιος ήταν ο ρόλος σου στη λήψη αρχιτεκτονικών αποφάσεων κατά την ανάπτυξη της υπηρεσίας αναζήτησης;

Senior
161

Πώς θα μπορούσαμε να διαχειριστούμε εξωτερικά τα σφάλματα που συμβαίνουν στις εργασίες, αν θέλαμε να το κάνουμε;

Senior
161

Έχεις χρησιμοποιήσει πρακτικά τα συμφραζόμενα; Πες μου.

Senior
160

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() }

Senior
159

Μπορείς να δημιουργήσεις έναν δείκτη μόνο στη ρεπлика, αλλά όχι στον κύριο;

Senior
159

Υπάρχουν ακόμα αγώνες δεδομένων στην υλοποίηση; Συγκεκριμένα στη μέθοδο Keys, που επιστρέφει μια φέτα κλειδιών;

Senior
158

Θες να γράψεις μια κλασική ομάδα εργαζομένων;

Senior
156

Ποια είναι η διαφορά μεταξύ SELECT FOR UPDATE και SELECT FOR SHARE;

Senior
155

Έχετε εμπειρία στη συγγραφή Kubernetes operators, στη διαχείριση operators, Helm Chart;

Senior
153

Επιτρέπεται η εργασία μόνο εντός της επικράτειας της Ρωσικής Ομοσπονδίας;

Senior
152

Τύποι αναπαραγωγής στο PostgreSQL

Senior
152

Χρησιμοποιήσατε λειτουργίες παραθύρου;

Senior
150
/7