Έχετε ερωτήσεις για μένα;
Golang
Τι λέει η σύμβαση Go σχετικά με τη χρήση του WaitGroup και των τύπων επιστροφής (αποδοχή διεπαφών, επιστροφή συγκεκριμένων τύπων);
Μπορεί μια goroutine να γράψει απευθείας σε μια άλλη goroutine σε ένα buffered κανάλι;
Αποφάσισες να γράψεις WaitGroup επειδή εμφανίστηκε ένα κανάλι ή επειδή αποφάσισες να γράψεις goroutines για κάτι;
Ποια τεχνολογία/εργαλείο χρησιμοποιείς;
// Ο πελάτης μεταβιβάζει ένα αντικείμενο (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() }
Ποιοι τύποι ευρετηρίων υπάρχουν στο PostgreSQL εκτός από το B-tree;
Έχεις χρησιμοποιήσει CTE; Πες μου τι είναι.
Ποιος ήταν ο ρόλος σου στη λήψη αρχιτεκτονικών αποφάσεων κατά την ανάπτυξη της υπηρεσίας αναζήτησης;
Πώς θα μπορούσαμε να διαχειριστούμε εξωτερικά τα σφάλματα που συμβαίνουν στις εργασίες, αν θέλαμε να το κάνουμε;
Έχεις χρησιμοποιήσει πρακτικά τα συμφραζόμενα; Πες μου.
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() }
Μπορείς να δημιουργήσεις έναν δείκτη μόνο στη ρεπлика, αλλά όχι στον κύριο;
Υπάρχουν ακόμα αγώνες δεδομένων στην υλοποίηση; Συγκεκριμένα στη μέθοδο Keys, που επιστρέφει μια φέτα κλειδιών;
Θες να γράψεις μια κλασική ομάδα εργαζομένων;
Ποια είναι η διαφορά μεταξύ SELECT FOR UPDATE και SELECT FOR SHARE;
Έχετε εμπειρία στη συγγραφή Kubernetes operators, στη διαχείριση operators, Helm Chart;
Επιτρέπεται η εργασία μόνο εντός της επικράτειας της Ρωσικής Ομοσπονδίας;
Τύποι αναπαραγωγής στο PostgreSQL
Χρησιμοποιήσατε λειτουργίες παραθύρου;