Documentation
¶
Overview ¶
Resident Task Manager ¶
Provides in-process task execution, using go-routines.
Index ¶
Constants ¶
const (
DEFAULT_MAX_TASKS = 100
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type TaskArguments ¶
type TaskContext ¶
type TaskContext struct {
// Cancellable context. One can also check the status of the context (Ctx.Err()) to check if the context
// has been cancelled
Ctx context.Context
// Arguments passed to the task
Args TaskArguments
// contains filtered or unexported fields
}
type TaskExecutor ¶
type TaskExecutor struct {
// contains filtered or unexported fields
}
func NewTaskExecutor ¶
func NewTaskExecutor(size ...int) *TaskExecutor
Create a new, one time use executor with a working pool of size "size".
Queueing tasks to the pool will cause the task to immediately run if the pool size is within the specified size, otherwise tasks are scheduled on a FIFO list, for later execution when space becomes available in the pool.
func (*TaskExecutor) Queue ¶
func (te *TaskExecutor) Queue(fn TaskFunc, args TaskArguments)
Queue the task to run immediately or later when execution space becomes available.
func (*TaskExecutor) Shutdown ¶
func (te *TaskExecutor) Shutdown()
Shuts down the executor and any running tasks.
The function will block until all running tasks in the pool have finished.
Tasks in the backup queue do not affect this function and are ignored.
type TaskFunc ¶
type TaskFunc func(ctx *TaskContext)
The task function to be executed by the task manager