ExpertiDict

Go · Intermediário · Inglês · Técnico

worker pool

/ˈwɝ.kɚ puːl/substantivo

Padrão com um número fixo de goroutines que consomem tarefas de um mesmo channel. Limita a concorrência e reaproveita as goroutines em vez de criar uma por tarefa.

Onde usar

Usado para processar milhares de itens sem estourar memória, banco ou limite de conexões. O tamanho do pool é o controle de pressão do sistema.

Em código

jobs := make(chan int)
for range 3 { // 3 workers
  go func() {
    for j := range jobs { process(j) }
  }()
}
jobs <- 1
close(jobs)

Exemplos

We use a worker pool of ten to call the API.

Usamos um worker pool de dez para chamar a API.

The pool size limits how many jobs run at once.

O tamanho do pool limita quantos jobs rodam ao mesmo tempo.

Cuidado

Mais workers nem sempre significa mais velocidade; se o gargalo é o banco ou a CPU, o excesso só aumenta a disputa.

Sinônimos

pool de workers

Veja também

Todos os termos de Go