31 lines
999 B
Go
31 lines
999 B
Go
package pool
|
|
|
|
import (
|
|
"fmt"
|
|
"planA/planB/initialization/golabl"
|
|
"sync"
|
|
"time"
|
|
|
|
"github.com/panjf2000/ants/v2"
|
|
)
|
|
|
|
// CreatePoolToG 创建协程池到全局变量中
|
|
// @return error 错误信息
|
|
func CreatePoolToG() error {
|
|
// 创建协程池
|
|
pool, err := ants.NewPool(
|
|
golabl.Config.PoolConfig.Size,
|
|
ants.WithExpiryDuration(time.Duration(golabl.Config.PoolConfig.WithExpiryDuration)*time.Second), // 过期时间
|
|
ants.WithPreAlloc(golabl.Config.PoolConfig.WithPreAlloc), // 预分配
|
|
ants.WithMaxBlockingTasks(golabl.Config.PoolConfig.WithMaxBlockingTasks), // 最大阻塞任务数
|
|
ants.WithNonblocking(golabl.Config.PoolConfig.WithNonblocking), // 非阻塞
|
|
ants.WithPanicHandler(func(p interface{}) { fmt.Printf("panic: %v", p) }), // panic 处理
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
golabl.Pool.Pool = pool
|
|
golabl.Pool.Wg = &sync.WaitGroup{}
|
|
return nil
|
|
}
|