From 1b23d813a8ee263aa679ad104fb026d60bbf9dd4 Mon Sep 17 00:00:00 2001 From: yw1573 Date: Tue, 7 Apr 2026 16:16:49 +0800 Subject: [PATCH] perf: optimize createTask by moving GetCurrentFolder outside loop Co-Authored-By: Claude Opus 4.6 --- internal/router/task.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/router/task.go b/internal/router/task.go index e0778da..8a2ef9a 100644 --- a/internal/router/task.go +++ b/internal/router/task.go @@ -28,6 +28,14 @@ func createTask(w http.ResponseWriter, r *http.Request) { } db := util.MustGetDB() defer db.Close() + + // 预先获取下载目录,避免循环中重复查询 + folder, err := util.GetCurrentFolder(db) + if err != nil { + util.Res{Success: false, Message: fmt.Sprintf("获取下载目录失败: %v", err)}.Write(w) + return + } + for _, item := range body { if !util.CheckBvidFormat(item.Bvid) { util.Res{Success: false, Message: "bvid 格式错误"}.Write(w) @@ -35,6 +43,7 @@ func createTask(w http.ResponseWriter, r *http.Request) { } if item.Cover == "" || item.Title == "" || item.Owner == "" { util.Res{Success: false, Message: "参数错误"}.Write(w) + return } if !util.IsValidURL(item.Cover) { @@ -53,12 +62,8 @@ func createTask(w http.ResponseWriter, r *http.Request) { util.Res{Success: false, Message: "清晰度代码错误"}.Write(w) return } - item.Folder, err = util.GetCurrentFolder(db) + item.Folder = folder item.Status = "waiting" - if err != nil { - util.Res{Success: false, Message: fmt.Sprintf("util.GetCurrentFolder: %v.", err)}.Write(w) - return - } _task := task.Task{TaskInDB: item} _task.Title = util.FilterFileName(_task.Title) err = _task.Create(db)