Une goroutine peut-elle écrire directement dans une autre goroutine via un canal tamponné?
Golang
Avez-vous des questions pour moi?
Que dit la convention Go sur l'utilisation de WaitGroup et les types de retour (acceptant des interfaces, retournant des types concrets) ?
// Le client transmet un objet (Task) avec des données pour exécuter la tâche, // dans notre exemple, nous utiliserons une structure vide. // // Le gestionnaire peut traiter au maximum N tâches simultanément, // et pas plus de X tâches peuvent être en file d'attente. // Si l'espace dans la file d'attente est plein, une erreur est renvoyée immédiatement au client. // // La tâche est prise en charge si des processeurs libres sont disponibles. // Nous simulons la durée du traitement avec time.Sleep(5*time.Second). // Dès qu'une tâche est terminée, nous prenons la suivante dans la file. // Si la file est vide, nous attendons de nouvelles tâches des clients. // // Avec une étoile : compléter la structure Task et obtenir les statuts des tâches via une requête séparée. 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 { // implémentation en attente } type Task interface { Do() }
Quelle technologie/outil utilises-tu?
Quels types d'index dans PostgreSQL, en plus de B-tree, avez-vous utilisés?
Quel était votre rôle dans la prise de décisions architecturales lors du développement du service de recherche?
Comment pourrions-nous gérer en externe les erreurs qui se produisent dans les tâches si nous voulions le faire?
Avez-vous utilisé CTE ? Racontez ce que c'est.
As-tu utilisé des contextes en pratique ? Raconte-moi.
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() }
Y a-t-il encore des courses de données dans l'implémentation ? Plus précisément dans la méthode Keys, qui retourne une tranche de clés ?
Peut-on créer un index uniquement sur la réplica, mais pas sur le maître?
Veux-tu écrire un pool de travailleurs classique?
Quelle est la différence entre SELECT FOR UPDATE et SELECT FOR SHARE?
Types de réplication dans PostgreSQL
Avez-vous de l'expérience dans l'écriture d'opérateurs Kubernetes, l'administration d'opérateurs, Helm Chart?
Le travail est-il autorisé uniquement sur le territoire de la Fédération de Russie?
Avez-vous utilisé des fonctions de fenêtre?
À quoi sert le plus souvent Consul dans une architecture de microservices?