Sobes.tech

Golang

Você decidiu escrever WaitGroup porque apareceu um canal ou porque decidiu escrever goroutines para alguma coisa?

Senior
176

O que achas das horas extras?

Senior
174

O que te chamou a atenção nesta vaga e por que estás a sair do teu emprego anterior?

Senior
174

Tem alguma pergunta para mim?

Senior
173

Pode uma goroutine escrever diretamente para outra goroutine num canal com buffer?

Senior
172

O que a convenção Go diz sobre o uso de WaitGroup e tipos de retorno (aceitando interfaces, retornando tipos específicos)?

Senior
172

Quais são os tipos de índices no PostgreSQL além do B-tree?

Senior
171

Qual foi o teu papel na tomada de decisões arquitetónicas durante o desenvolvimento do serviço de pesquisa?

Senior
170

Por que queue (de qual palavra Q)?

Senior
169

Já usou contextos na prática? Conta-me.

Senior
168

Que tecnologia/ferramenta usas?

Senior
168

O trabalho é permitido apenas dentro do território da Federação Russa?

Senior
168

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
167

// O cliente passa um objeto (Task) com dados para executar a tarefa, // no nosso exemplo, usaremos uma estrutura vazia. // // O gestor pode processar no máximo N tarefas simultaneamente, // e no máximo X tarefas podem estar na fila de espera. // Se não houver espaço na fila, retorna-se um erro imediatamente ao cliente. // // A tarefa é processada se houver processadores livres. // Simulamos a duração do processamento com time.Sleep(5*time.Second). // Assim que uma tarefa termina, pegamos a próxima na fila. // Se a fila estiver vazia, aguardamos novas tarefas dos clientes. // // Com um asterisco: completar a estrutura Task e obter os estados das tarefas através de uma consulta separada. 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 { // implementação pendente } type Task interface { Do() }

Senior
166

Queres escrever um pool de trabalhadores clássico?

Senior
166

Tipos de replicação no PostgreSQL

Senior
166

Qual é a diferença entre SELECT FOR UPDATE e SELECT FOR SHARE?

Senior
165

Como resolvias as situações quando a tua decisão era rejeitada?

Senior
164

Que documentos eram armazenados no ELK?

Senior
164

Ainda há corridas de dados na implementação? Especificamente no método Keys, que retorna uma fatia de chaves?

Senior
164
/7