Versions in this module Expand all Collapse all v1 v1.0.1 Aug 28, 2026 v1.0.0 Aug 26, 2026 Changes in this version + var ErrHandlerPanic = errors.New("golang-queue: handler panic") + var ErrInvalidConfiguration = errors.New("golang-queue: invalid configuration") + var ErrInvalidManagementLifecycle = errors.New("queue: invalid management lifecycle") + var ErrManagementLifecycleDisabled = errors.New("queue: management lifecycle disabled") + var ErrMaxCapacity = errors.New("golang-queue: maximum size limit reached") + var ErrMissingWorker = errors.New("missing worker module") + var ErrNoTaskInQueue = errors.New("golang-queue: no task in queue") + var ErrQueueHasBeenClosed = errors.New("golang-queue: queue has been closed") + var ErrQueueShutdown = errors.New("queue has been closed and released") + var ErrSettlementPanic = errors.New("golang-queue: settlement panic") + var ErrWorkerShutdownPanic = errors.New("golang-queue: worker shutdown panic") + type Event struct + Backend string + Classification management.Classification + Depth int64 + Duration time.Duration + Err error + FailureCode string + JobAge time.Duration + Kind EventKind + OccurredAt time.Time + Queue string + RetryDelay time.Duration + RetryRemaining int64 + type EventKind string + const EventAckFailed + const EventAcknowledged + const EventEnqueued + const EventHandlerFailed + const EventHandlerStarted + const EventHandlerSucceeded + const EventRejectFailed + const EventRejected + const EventRetryScheduled + const EventShutdownCompleted + const EventShutdownStarted + type Logger interface + Error func(args ...any) + Errorf func(format string, args ...any) + Fatal func(args ...any) + Fatalf func(format string, args ...any) + Info func(args ...any) + Infof func(format string, args ...any) + func NewEmptyLogger() Logger + func NewLogger() Logger + type Metric interface + BusyWorkers func() int64 + CompletedTasks func() uint64 + DecBusyWorker func() + FailureTasks func() uint64 + IncBusyWorker func() + IncFailureTask func() + IncSubmittedTask func() + IncSuccessTask func() + SubmittedTasks func() uint64 + SuccessTasks func() uint64 + func NewMetric() Metric + type Observer interface + Observe func(Event) + type ObserverFunc func(Event) + func (f ObserverFunc) Observe(event Event) + type Option interface + func WithAfterFn(afterFn func()) Option + func WithFn(fn func(context.Context, core.TaskMessage) error) Option + func WithLogger(l Logger) Option + func WithMetric(m Metric) Option + func WithObserver(observer Observer) Option + func WithQueueSize(num int) Option + func WithRetryInterval(d time.Duration) Option + func WithWorker(w core.Worker) Option + func WithWorkerCount(num int64) Option + func WithWorkerLifecycle(lifecycle *management.WorkerLifecycle) Option + type OptionFunc func(*Options) + type Options struct + func NewOptions(opts ...Option) *Options + type Queue struct + func NewPool(size int64, opts ...Option) *Queue + func NewQueue(opts ...Option) (*Queue, error) + func (q *Queue) ApplyDesiredState(ctx context.Context, record management.DesiredRecord) error + func (q *Queue) BusyWorkers() int64 + func (q *Queue) CloseAdmission() error + func (q *Queue) CompletedTasks() uint64 + func (q *Queue) Execute(ctx context.Context, command management.Command) (management.CommandResult, error) + func (q *Queue) FailureTasks() uint64 + func (q *Queue) ObserveQueue(ctx context.Context) (management.QueueStatus, error) + func (q *Queue) ObserveWorker(ctx context.Context) (management.WorkerStatus, error) + func (q *Queue) Queue(message core.QueuedMessage, opts ...job.AllowOption) error + func (q *Queue) QueueTask(task job.TaskFunc, opts ...job.AllowOption) error + func (q *Queue) Release() + func (q *Queue) ReleaseContext(ctx context.Context) error + func (q *Queue) Shutdown() + func (q *Queue) Start() + func (q *Queue) SubmittedTasks() uint64 + func (q *Queue) SuccessTasks() uint64 + func (q *Queue) UpdateWorkerCount(num int64) + func (q *Queue) Wait() + func (q *Queue) WaitContext(ctx context.Context) error + type Ring struct + func NewRing(opts ...Option) *Ring + func (*Ring) BackendName() string + func (*Ring) QueueName() string + func (s *Ring) Queue(task core.TaskMessage) error + func (s *Ring) Request() (core.TaskMessage, error) + func (s *Ring) Run(ctx context.Context, task core.TaskMessage) error + func (s *Ring) Shutdown() error