github.com/nyan233/littlerpc@v0.4.6-0.20230316182519-0c8d5c48abaf/internal/pool/doc.go (about)

     1  // Package pool littlerpc自带的goroutine池
     2  package pool
     3  
     4  type Hash interface {
     5  	string | []byte | int64 | uint64
     6  }
     7  
     8  type TaskPool[Key Hash] interface {
     9  	Push(Key, func()) error
    10  	Stop() error
    11  	// LiveSize 存活的goroutine数量
    12  	LiveSize() int
    13  	// BufSize 缓冲区中存在的任务数量
    14  	BufSize() int
    15  	// ExecuteSuccess 任务池执行成功的任务数量
    16  	ExecuteSuccess() int
    17  	// ExecuteError 任务池执行失败的任务数量
    18  	ExecuteError() int
    19  }
    20  
    21  type TaskPoolBuilder[Key Hash] interface {
    22  	Builder(bufSize, minSize, maxSize int32, rf RecoverFunc) TaskPool[Key]
    23  }