This commit is contained in:
ryan
2026-06-08 14:34:09 +08:00
parent db68a130ce
commit 72c74803be
17 changed files with 596 additions and 58 deletions
+12
View File
@@ -18,6 +18,7 @@ package task
const (
CleanupUnusedUploadsTask = "upload:cleanup_unused"
SendEmailTask = "mail:send"
)
const (
@@ -27,6 +28,7 @@ const (
// 管理员可下发的任务类型标识
const (
TaskTypeCleanupUploads = "cleanup_unused_uploads"
TaskTypeSendEmail = "send_email"
)
// TaskMeta 任务元数据
@@ -53,6 +55,16 @@ var DispatchableTasks = []TaskMeta{
Queue: QueueDefault,
Retryable: true,
},
{
Type: TaskTypeSendEmail,
AsynqTask: SendEmailTask,
Name: "发送邮件",
Description: "异步发送系统邮件",
SupportsTime: false,
MaxRetry: 3,
Queue: QueueDefault,
Retryable: true,
},
}
// GetTaskMeta 根据任务类型获取元数据
+3
View File
@@ -21,6 +21,7 @@ import (
"github.com/hibiken/asynq"
"github.com/linux-do/credit/internal/apps/upload"
"github.com/linux-do/credit/internal/apps/user"
"github.com/linux-do/credit/internal/config"
"github.com/linux-do/credit/internal/task"
)
@@ -28,6 +29,7 @@ import (
func init() {
// 注册所有任务处理器
task.RegisterHandler(task.CleanupUnusedUploadsTask, &upload.CleanupUnusedUploadsHandler{})
task.RegisterHandler(task.SendEmailTask, &user.SendEmailHandler{})
}
// StartWorker 启动任务处理服务器
@@ -49,6 +51,7 @@ func StartWorker() error {
// 统一使用 task.ProcessTask 处理所有任务类型
// 框架内部自动分发到对应的 TaskHandler 实现
mux.HandleFunc(task.CleanupUnusedUploadsTask, task.ProcessTask)
mux.HandleFunc(task.SendEmailTask, task.ProcessTask)
// 启动服务器
return asynqServer.Run(mux)