专栏名称: go4it
目录
相关文章推荐
跟宇宙结婚  ·  青年游记:观看【齐秦、叶世荣、赵传 ... ·  昨天  
跟宇宙结婚  ·  节目更新:vol.451 ... ·  2 天前  
跟宇宙结婚  ·  日常关爱:上饿了么搜【跟宇宙结婚】领红包哟 ·  2 天前  
51好读  ›  专栏  ›  go4it

聊聊tempodb的Pool

go4it  · 掘金  ·  · 2021-01-29 22:52

正文

阅读 75

聊聊tempodb的Pool

本文主要研究一下tempodb的Pool

Pool

tempo/tempodb/pool/pool.go

type Pool struct {
	cfg  *Config
	size *atomic.Int32

	workQueue  chan *job
	shutdownCh chan struct{}
}
复制代码

Pool定义了cfg、size、workQueue、shutdownCh属性

job

tempo/tempodb/pool/pool.go

type job struct {
	ctx     context.Context
	cancel  context.CancelFunc
	payload interface{}
	fn      JobFunc

	wg        *sync.WaitGroup
	resultsCh chan []byte
	stop      *atomic.Bool
	err       *atomic.Error
}

type JobFunc func(ctx context.Context, payload interface{}) ([]byte, error)
复制代码

job定义了ctx、cancel、payload、JobFunc、wg、resultsCh、stop、err属性;JobFunc接收payload,返回 []byte 类型的结果







请到「今天看啥」查看全文