queue

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrQueueEmpty = errors.New("queue: queue is empty")
	ErrJobTimeout = errors.New("queue: job execution timeout")
)

Functions

This section is empty.

Types

type Dispatcher

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

Dispatcher 任务分发器

func NewDispatcher

func NewDispatcher(queue Queue) *Dispatcher

NewDispatcher 创建分发器

func (*Dispatcher) Dispatch

func (d *Dispatcher) Dispatch(job *Job) error

Dispatch 分发任务

func (*Dispatcher) DispatchLater

func (d *Dispatcher) DispatchLater(job *Job, delay time.Duration) error

DispatchLater 延迟分发任务

type Handler

type Handler func(job *Job) error

Handler 任务处理器

type Job

type Job struct {
	ID        string                 `json:"id"`
	Queue     string                 `json:"queue"`
	Payload   map[string]interface{} `json:"payload"`
	Attempts  int                    `json:"attempts"`
	MaxTries  int                    `json:"max_tries"`
	Timeout   time.Duration          `json:"timeout"`
	CreatedAt time.Time              `json:"created_at"`
}

Job 任务

func Deserialize

func Deserialize(data []byte) (*Job, error)

Deserialize 反序列化任务

func NewJob

func NewJob(queue string, payload map[string]interface{}) *Job

NewJob 创建新任务

func (*Job) Serialize

func (j *Job) Serialize() ([]byte, error)

Serialize 序列化任务

func (*Job) WithMaxTries

func (j *Job) WithMaxTries(maxTries int) *Job

WithMaxTries 设置最大重试次数

func (*Job) WithTimeout

func (j *Job) WithTimeout(timeout time.Duration) *Job

WithTimeout 设置超时时间

type Queue

type Queue interface {
	// Push 推送任务到队列
	Push(job *Job) error

	// Pop 从队列获取任务
	Pop(queue string) (*Job, error)

	// Later 延迟推送任务
	Later(job *Job, delay time.Duration) error

	// Size 获取队列大小
	Size(queue string) (int64, error)

	// Clear 清空队列
	Clear(queue string) error
}

Queue 队列接口

type SyncDriver

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

SyncDriver 同步内存队列驱动

func NewSyncDriver

func NewSyncDriver() *SyncDriver

NewSyncDriver 创建同步驱动

func (*SyncDriver) Clear

func (d *SyncDriver) Clear(queue string) error

Clear 清空队列

func (*SyncDriver) Later

func (d *SyncDriver) Later(job *Job, delay time.Duration) error

Later 延迟推送

func (*SyncDriver) Pop

func (d *SyncDriver) Pop(queue string) (*Job, error)

Pop 获取任务

func (*SyncDriver) Push

func (d *SyncDriver) Push(job *Job) error

Push 推送任务

func (*SyncDriver) Size

func (d *SyncDriver) Size(queue string) (int64, error)

Size 获取队列大小

type Worker

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

Worker 队列工作者

func NewWorker

func NewWorker(queue Queue) *Worker

NewWorker 创建工作者

func (*Worker) Register

func (w *Worker) Register(queueName string, handler Handler)

Register 注册任务处理器

func (*Worker) Start

func (w *Worker) Start(queueName string)

Start 启动工作者

func (*Worker) Stop

func (w *Worker) Stop()

Stop 停止工作者

Jump to

Keyboard shortcuts

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