Go errgroup 怎么用?并发任务错误收集与取消传播
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
golang.org/x/sync/errgroup:并发执行多个任务并收集第一个错误。用法:g, ctx := errgroup.WithContext(ctx); g.Go(func() error {...}); err := g.Wait()。特点:① 任一任务返回错误会取消 ctx(WithContext 时),其他任务可监听 ctx.Done() 退出;② Wait 返回第一个非 nil 错误;③ SetLimit 限制并发数(Go 1.20+)。应用:并行请求多个服务、批量处理并汇总错误。注意:errgroup 内部用 WaitGroup 封装,需留意 ctx 取消语义。
回复
0 条回复