ExpertiDict

Go · Avançado · Inglês · Técnico

errgroup

/ˈɛɹ.ɡɹup/substantivo

Tipo do módulo golang.org/x/sync que roda um conjunto de goroutines, espera todas e devolve o primeiro erro. Com WithContext, cancela as demais quando uma falha.

Onde usar

Substitui a combinação WaitGroup mais channel de erros em chamadas paralelas, como buscar dados de vários serviços. Deixa a propagação de falha e o cancelamento sem código repetitivo.

Em código

g, ctx := errgroup.WithContext(ctx)
for _, u := range urls {
  g.Go(func() error {
    return buscar(ctx, u)
  })
}
return g.Wait() // primeiro erro

Exemplos

Use an errgroup to call the three services in parallel.

Use um errgroup para chamar os três serviços em paralelo.

The errgroup cancels the context when one call fails.

O errgroup cancela o context quando uma chamada falha.

Cuidado

Ele fica fora da biblioteca padrão e só devolve o primeiro erro; os demais são descartados.

Origem

Junção de error e group.

Veja também

Todos os termos de Go