Go tip: errgroup вместо ручного управления группой горутин Нужно… — Библиотека Go-разработчика | Golang — TG.ME

⚙️ Go tip: errgroup вместо ручного управления группой горутин

Нужно параллельно выполнить несколько задач, остановиться при ошибке и ограничить количество одновременно работающих операций?

Вместо WaitGroup + канала ошибок можно использовать golang.org/x/sync/errgroup:


g, ctx := errgroup.WithContext(ctx)
g.SetLimit(8)

for _, url := range urls {
g.Go(func() error {
return fetch(ctx, url)
})
}

if err := g.Wait(); err != nil {
return err
}


WithContext отменяет контекст при первой ошибке, SetLimit(8) держит максимум 8 активных горутин, а Wait() возвращает ошибку.

🔗 Источник

📍 Навигация: ВакансииЗадачиСобесы

🐸 Библиотека Go-разработчика

#GoToProduction
👍18🥱5❤‍🔥2🤩2
August 22, 2026 3.3K 32