Documentation
¶
Overview ¶
Package routine 协程池库,如果你有一个任务需要另起协程执行,请调用这个库
Example Usage
routine.Run(true, func() { // 书写协程逻辑 ... })
Index ¶
- Variables
- func Catch()
- func Close() error
- func GetRoutineNumber() int
- func Handle(r interface{})
- func Open() error
- func RegisterManagerType(name string, f NewManagerFunc)
- func Run(needRecover bool, task Task) error
- func SetManager(typ string, opts ...Option) error
- func Trace(skip int) []byte
- type Ants
- type Logger
- type Manager
- type NewManagerFunc
- type Option
- type Options
- type Task
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrInvalidManager 不支持的协程控制器类型 ErrInvalidManager = errors.New("unsupported routine manager type") // ErrInvalidPanicError 不支持的崩溃错误类型 ErrInvalidPanicError = errors.New("unsupported panic error interface") // ErrManagerClosed 控制器关闭时,无法正常执行任务,请先调用 routine.Open() ErrManagerClosed = errors.New("cannot exec task when manager closed") )
View Source
var ( // DefaultManagerOptions 默认 Manager 选项 DefaultManagerOptions = Options{ PoolSize: -1, } )
Functions ¶
func RegisterManagerType ¶
func RegisterManagerType(name string, f NewManagerFunc)
RegisterManagerType 注册一个新的协程控制器类型
通过这个函数,可以轻松扩展这个库
func SetManager ¶
Types ¶
type Ants ¶
type Ants struct {
// contains filtered or unexported fields
}
Ants 由 panjf2000/ants 实现的线程池
func (*Ants) GetRoutineNumber ¶
type Manager ¶
type Manager interface { // Open 开启控制器 Open() error // Close 关闭控制器 Close() error // GetRoutineNumber 获取当前正在运行的协程数量 GetRoutineNumber() int // Run 把任务交给协程处理 Run(needRecover bool, task Task) error }
Manager 协程控制器
Click to show internal directories.
Click to hide internal directories.