Go · Avançado · Inglês · Técnico
errgroup
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 erroExemplos
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.