Files
taskq/taskq.go
hupeh 326f2a371c feat: 优化监控仪表盘 UI
- 添加 appbar 导航栏,支持 Chart/Queues 视图切换
- appbar 切换使用 history API,支持浏览器前进/后退
- 图表视图占满整个可视区域
- queue-modal 共享 appbar 样式
- 修复 queue tab count 字段名大小写问题
- tooltip 跟随鼠标显示在右下方,移除箭头
- 图表 canvas 鼠标样式改为准星
- pause/resume 队列后刷新列表
- example 添加 flag 配置参数
2025-12-10 00:53:30 +08:00

52 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Package taskq 提供基于 Redis 的异步任务队列功能
// 使用 asynq 库作为底层实现,支持任务注册、发布、消费和重试机制
//
// 本包提供两种使用方式:
// 1. 包级别函数:使用全局默认 Servlet适合单实例场景
// 2. Servlet 实例方法:支持多实例复用,适合需要隔离的场景
package taskq
import (
"context"
"reflect"
)
// 全局默认 Servlet 实例
var defaultServlet = NewServlet()
// 类型反射常量
var (
errorType = reflect.TypeOf((*error)(nil)).Elem() // error 类型反射
contextType = reflect.TypeOf((*context.Context)(nil)).Elem() // context.Context 类型反射
)
// Default 返回默认的 Servlet 实例
func Default() *Servlet {
return defaultServlet
}
// Configure 配置默认 Servlet
// 必须在 Init 之前调用
func Configure(cfg Config) error {
return defaultServlet.Configure(cfg)
}
// Init 初始化默认 Servlet 和所有插件
// 必须在 Start 之前调用,且只能调用一次
func Init(ctx context.Context) error {
return defaultServlet.Init(ctx)
}
// Start 启动 taskq 服务器(包级别函数,使用默认 Servlet
// 开始监听任务队列并处理任务
// 必须在 Init 之后调用
func Start(ctx context.Context) error {
return defaultServlet.Start(ctx)
}
// Stop 优雅停止 taskq 服务器(包级别函数,使用默认 Servlet
// 发送停止信号并等待服务器完全关闭
func Stop() {
defaultServlet.Stop()
}