提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
errgroup 适用于 需获取多个接口的数据进行汇总
go 天然的支持并发 所以这种场景 是不是也可以使用并发来处理呢??
一、errgroup 源码
- 通过
WithContext
可以创建一个带取消的Group
Go
方法传入一个func() error
内部会启动一个 goroutine 去处理Wait
类似 WaitGroup 的 Wait 方法,等待所有的 goroutine 结束后退出,返回的错误是一个出错的 err
errgroup package - golang.org/x/sync/errgroup - pkg.go.dev 官方文档
package errgroup
import (
"context"
"sync"
)
type Group struct {
cancel func()
wg sync.WaitGroup
errOnce sync.Once
err er