Documentation ¶
Index ¶
- Constants
- Variables
- func Cap() int
- func Free() int
- func Reboot()
- func Release()
- func Running() int
- func Submit(task func()) error
- type Logger
- type Option
- func WithExpiryDuration(expiryDuration time.Duration) Option
- func WithLogger(logger Logger) Option
- func WithMaxBlockingTasks(maxBlockingTasks int) Option
- func WithNonblocking(nonblocking bool) Option
- func WithOptions(options Options) Option
- func WithPanicHandler(panicHandler func(interface{})) Option
- func WithPreAlloc(preAlloc bool) Option
- type Options
- type Pool
- type PoolWithFunc
Constants ¶
const ( // DefaultAntsPoolSize is the default capacity for a default goroutine pool. DefaultAntsPoolSize = math.MaxInt32 // DefaultCleanIntervalTime is the interval time to clean up goroutines. DefaultCleanIntervalTime = time.Second )
const ( // OPENED represents that the pool is opened. OPENED = iota // CLOSED represents that the pool is closed. CLOSED )
Variables ¶
var ( // ErrInvalidPoolSize will be returned when setting a negative number as pool capacity. ErrInvalidPoolSize = errors.New("invalid size for pool") // ErrLackPoolFunc will be returned when invokers don't provide function for pool. ErrLackPoolFunc = errors.New("must provide function for pool") // ErrInvalidPoolExpiry will be returned when setting a negative number as the periodic duration to purge goroutines. ErrInvalidPoolExpiry = errors.New("invalid expiry for pool") // ErrPoolClosed will be returned when submitting task to a closed pool. ErrPoolClosed = errors.New("this pool has been closed") // ErrPoolOverload will be returned when the pool is full and no workers available. ErrPoolOverload = errors.New("too many goroutines blocked on submit or Nonblocking is set") )
Functions ¶
Types ¶
type Logger ¶ added in v2.4.0
type Logger interface { // Printf must have the same semantics as log.Printf. Printf(format string, args ...interface{}) }
Logger is used for logging formatted messages.
type Option ¶
type Option func(opts *Options)
Option represents the optional function.
func WithExpiryDuration ¶
WithExpiryDuration sets up the interval time of cleaning up goroutines.
func WithLogger ¶ added in v2.4.0
WithLogger sets up a customized logger.
func WithMaxBlockingTasks ¶
WithMaxBlockingTasks sets up the maximum number of goroutines that are blocked when it reaches the capacity of pool.
func WithNonblocking ¶
WithNonblocking indicates that pool will return nil when there is no available workers.
func WithOptions ¶
WithOptions accepts the whole options config.
func WithPanicHandler ¶
func WithPanicHandler(panicHandler func(interface{})) Option
WithPanicHandler sets up panic handler.
func WithPreAlloc ¶
WithPreAlloc indicates whether it should malloc for workers.
type Options ¶
type Options struct { // ExpiryDuration sets the expired time of every worker. ExpiryDuration time.Duration // PreAlloc indicates whether to make memory pre-allocation when initializing Pool. PreAlloc bool // Max number of goroutine blocking on pool.Submit. // 0 (default value) means no such limit. MaxBlockingTasks int // When Nonblocking is true, Pool.Submit will never be blocked. // ErrPoolOverload will be returned when Pool.Submit cannot be done at once. // When Nonblocking is true, MaxBlockingTasks is inoperative. Nonblocking bool // PanicHandler is used to handle panics from each worker goroutine. // if nil, panics will be thrown out again from worker goroutines. PanicHandler func(interface{}) // Logger is the customized logger for logging info, if it is not set, // default standard logger from log package is used. Logger Logger }
Options contains all options which will be applied when instantiating a ants pool.
type Pool ¶
type Pool struct {
// contains filtered or unexported fields
}
Pool accepts the tasks from client, it limits the total of goroutines to a given number by recycling goroutines.
type PoolWithFunc ¶
type PoolWithFunc struct {
// contains filtered or unexported fields
}
PoolWithFunc accepts the tasks from client, it limits the total of goroutines to a given number by recycling goroutines.
func NewPoolWithFunc ¶
func NewPoolWithFunc(size int, pf func(interface{}), options ...Option) (*PoolWithFunc, error)
NewPoolWithFunc generates an instance of ants pool with a specific function.
func (*PoolWithFunc) Free ¶
func (p *PoolWithFunc) Free() int
Free returns a available goroutines to work.
func (*PoolWithFunc) Invoke ¶
func (p *PoolWithFunc) Invoke(args interface{}) error
Invoke submits a task to pool.
func (*PoolWithFunc) Reboot ¶ added in v2.3.0
func (p *PoolWithFunc) Reboot()
Reboot reboots a released pool.
func (*PoolWithFunc) Running ¶
func (p *PoolWithFunc) Running() int
Running returns the number of the currently running goroutines.
func (*PoolWithFunc) Tune ¶
func (p *PoolWithFunc) Tune(size int)
Tune changes the capacity of this pool.