taskqueue

package
v1.66.0 Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package taskqueue 提供进程内异步任务队列:延迟执行、并发控制、优雅退出。 场景:抽奖开奖延迟、定时下播、消息撤回、异步通知。 注意:进程内队列不持久化(重启丢失);需持久化/分布式场景用 cron 模块或 MQ。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Queue

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

Queue 异步任务队列(延迟任务按时间排序执行)。

func NewQueue

func NewQueue(workers int) *Queue

NewQueue 创建队列。workers 为并发执行数(默认 2)。

func (*Queue) OnError

func (q *Queue) OnError(fn func(taskID string, err error)) *Queue

OnError 注册任务 panic 回调(默认静默忽略)。

func (*Queue) Pending

func (q *Queue) Pending() int

Pending 返回等待中的任务数(不含执行中)。

func (*Queue) Run

func (q *Queue) Run(ctx context.Context)

Run 启动调度循环,阻塞直到 ctx 取消。

func (*Queue) Submit

func (q *Queue) Submit(delay time.Duration, fn func()) (string, error)

Submit 提交任务:delay 为延迟执行时长(0 = 立即);返回任务 ID。 fn 在独立 goroutine 执行,panic 会被捕获并回调 OnError。

Directories

Path Synopsis
Package redqueue 提供基于 Redis 的可靠任务队列: 即时任务走 List,延迟任务走 ZSet(score=执行时间),多实例可并行消费。
Package redqueue 提供基于 Redis 的可靠任务队列: 即时任务走 List,延迟任务走 ZSet(score=执行时间),多实例可并行消费。

Jump to

Keyboard shortcuts

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