Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DispatchTicker ¶
type DispatchTicker struct {
// contains filtered or unexported fields
}
DispatchTicker represents a dispatched job ticker that executes on a given interval. This provides a means for stopping the execution cycle from continuing.
func (*DispatchTicker) Stop ¶
func (dt *DispatchTicker) Stop()
Stop ends the execution cycle for the given ticker.
type Dispatcher ¶
type Dispatcher struct {
// contains filtered or unexported fields
}
Dispatcher maintains a pool for available workers and a job queue that workers will process
func NewDispatcher ¶
func NewDispatcher(maxWorkers int, maxQueue int) *Dispatcher
NewDispatcher creates a new dispatcher with the given number of workers and buffers the job queue based on maxQueue. It also initializes the channels for the worker pool and job queue
func (*Dispatcher) Dispatch ¶
func (d *Dispatcher) Dispatch(run func()) error
Dispatch pushes the given job into the job queue. The first available worker will perform the job
func (*Dispatcher) DispatchEvery ¶
func (d *Dispatcher) DispatchEvery(run func(), interval time.Duration) (*DispatchTicker, error)
DispatchEvery pushes the given job into the job queue continuously at the given interval
func (*Dispatcher) DispatchIn ¶
func (d *Dispatcher) DispatchIn(run func(), duration time.Duration) error
DispatchIn pushes the given job into the job queue after the given duration has elapsed
func (*Dispatcher) Start ¶
func (d *Dispatcher) Start()
Start creates and starts workers, adding them to the worker pool. Then, it starts a select loop to wait for job to be dispatched to available workers
func (*Dispatcher) Stop ¶
func (d *Dispatcher) Stop()
Stop ends execution for all workers/tickers and closes all channels, then removes all workers/tickers
type Job ¶
type Job struct {
Run func()
}
Job represents a runnable process, where Start will be executed by a worker via the dispatch queue
type Worker ¶
type Worker struct {
// contains filtered or unexported fields
}
Worker attaches to a provided worker pool, and looks for jobs on its job channel
func NewWorker ¶
NewWorker creates a new worker using the given id and attaches to the provided worker pool. It also initializes the job/quit channels