Documentation
¶
Overview ¶
Package redqueue 提供基于 Redis 的可靠任务队列: 即时任务走 List,延迟任务走 ZSet(score=执行时间),多实例可并行消费。 与进程内 taskqueue 互补:进程内队列重启丢失,redqueue 持久化且支持多实例; 无需部署 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 是基于 Redis 的可靠任务队列。
func NewQueue ¶
NewQueue 创建队列;client 为 go-redis 客户端(可用 cache.RedisCache.Client())。 keyPrefix 用于多队列隔离(如 "order-tasks")。
func (*Queue) Consume ¶
func (q *Queue) Consume(ctx context.Context, handler func(ctx context.Context, payload []byte) error) error
Consume 阻塞消费任务:延迟任务到期后原子搬入即时队列,再阻塞取任务执行。 handler 返回错误时任务重新入队(最多无限重试;业务可自行判断后返回 nil 放弃)。 ctx 取消时优雅退出(处理中的任务完成后返回)。
Click to show internal directories.
Click to hide internal directories.