Sobes.tech

Golang

Una goroutine può scrivere direttamente in un'altra goroutine tramite un canale bufferizzato?

Senior
168

Quale tecnologia/strumento usi?

Senior
164

// Il cliente passa un oggetto (Task) con i dati per eseguire il compito, // nel nostro esempio useremo una struttura vuota. // // Il gestore può elaborare al massimo N compiti contemporaneamente, // e non più di X compiti possono essere messi in coda. // Se non c'è spazio in coda, si restituisce immediatamente un errore al cliente. // // Il compito viene preso in carico se ci sono processori liberi. // Simuliamo la durata dell'elaborazione con time.Sleep(5*time.Second). // Appena un compito termina, prendiamo il prossimo dalla coda. // Se la coda è vuota, aspettiamo nuovi compiti dai clienti. // // Con un asterisco: ampliare la struttura Task e ottenere gli stati dei compiti tramite una richiesta separata. 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 { // implementazione in sospeso } type Task interface { Do() }

Senior
164

Cosa dice la convenzione di Go sull'uso di WaitGroup e sui tipi restituiti (accettando interfacce, restituendo tipi concreti)?

Senior
164

Quali tipi di indici in PostgreSQL, oltre al B-tree, hai usato?

Senior
163

Come potremmo gestire esternamente gli errori che si verificano nelle attività, se volessimo farlo?

Senior
161

Qual è stato il tuo ruolo nelle decisioni architettoniche durante lo sviluppo del servizio di ricerca?

Senior
161

Hai usato CTE? Racconta cos'è.

Senior
160

Hai usato i contesti nella pratica? Raccontami.

Senior
158

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
157

È possibile creare un indice solo sulla replica, ma non sul master?

Senior
156

Ci sono ancora gare di dati nell'implementazione? In particolare nel metodo Keys, che restituisce una fetta di chiavi?

Senior
156

Vuoi scrivere un pool di worker classico?

Senior
154

Qual è la differenza tra SELECT FOR UPDATE e SELECT FOR SHARE?

Senior
153

Tipi di replica in PostgreSQL

Senior
152

Hai usato funzioni di finestra?

Senior
150

Il lavoro è consentito solo all'interno del territorio della Federazione Russa?

Senior
150

Hai esperienza nella scrittura di operatori Kubernetes, amministrazione di operatori, Helm Chart?

Senior
149

Perché non avete usato Redis invece di memorizzarlo nel database?

Senior
148
/7