taskqueue

package
v0.0.0-...-83a4208 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTaskQueue          = fmt.Errorf("task queue error")
	ErrTaskQueueCapacity  = fmt.Errorf("%w: capacity is exhausted", ErrTaskQueue)
	ErrTaskQueueUndefined = fmt.Errorf("%w: undefined", ErrTaskQueue)
)

Functions

This section is empty.

Types

type Handler

type Handler func(*Task) error

Handler defines task handler

type Subject

type Subject interface{}

Subject defines task subject used as key in map and requires comparable type

type Task

type Task struct {
	Args    []interface{}
	Idx     uint8
	Subject Subject
	// contains filtered or unexported fields
}

Task defines queued task

func (Task) Done

func (task Task) Done() chan error

Done returns channel for result

type TaskQueue

type TaskQueue struct {
	// contains filtered or unexported fields
}

TaskQueue defines task queue

func NewTaskQueue

func NewTaskQueue(opts ...TaskQueueOption) *TaskQueue

NewTaskQueue creates task queue

func (*TaskQueue) PushAsync

func (q *TaskQueue) PushAsync(subj Subject, args ...interface{}) (*Task, error)

PushAsync adds task into queue and returns immediately

func (*TaskQueue) PushSync

func (q *TaskQueue) PushSync(subj Subject, args ...interface{}) error

PushSync adds task into queue and returns after task processing

type TaskQueueOption

type TaskQueueOption func(*TaskQueue)

TaskQueueOption defines task queue option

func WithAlarm

func WithAlarm(d time.Duration, h Handler) TaskQueueOption

WithAlarm defines handler invoked on timeout after task start useful for log the long executed task

func WithCapacity

func WithCapacity(c uint8) TaskQueueOption

WithCapacity defines capacity of task queue

func WithDebugger

func WithDebugger(fn func([]Task)) TaskQueueOption

WithDebugger defines debug

func WithHandlers

func WithHandlers(m map[Subject]Handler) TaskQueueOption

WithHandlers defines tasks

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL