From 9d5e75b0c2991fe47877168467b202cae7c5ea33 Mon Sep 17 00:00:00 2001 From: tzwang Date: Tue, 21 May 2024 08:57:10 +0800 Subject: [PATCH] fix tasklist bugs Former-commit-id: 06cd3c9adac9c7c1ad07dd8cc6ae24e47f0a1835 --- api/internal/logic/core/pagelisttasklogic.go | 38 ++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/api/internal/logic/core/pagelisttasklogic.go b/api/internal/logic/core/pagelisttasklogic.go index db5ea094..97dad450 100644 --- a/api/internal/logic/core/pagelisttasklogic.go +++ b/api/internal/logic/core/pagelisttasklogic.go @@ -85,24 +85,25 @@ func (l *PageListTaskLogic) PageListTask(req *types.PageTaskReq) (resp *types.Pa return } -func (l *PageListTaskLogic) updateTaskStatus(tasks []*types.TaskModel, ch chan<- struct{}) { - for i := len(tasks) - 1; i >= 0; i-- { - if tasks[i].AdapterTypeDict != 1 || tasks[i].Status == constants.Succeeded || tasks[i].Status == constants.Failed { - tasks = append(tasks[:i], tasks[i+1:]...) +func (l *PageListTaskLogic) updateTaskStatus(tasklist []*types.TaskModel, ch chan<- struct{}) { + list := tasklist + for i := len(list) - 1; i >= 0; i-- { + if list[i].AdapterTypeDict != 1 || list[i].Status == constants.Succeeded || list[i].Status == constants.Failed { + list = append(list[:i], list[i+1:]...) } } - if len(tasks) == 0 { + if len(list) == 0 { ch <- struct{}{} return } - task := tasks[0] - for i, _ := range tasks { + task := list[0] + for i, _ := range list { earliest, _ := time.Parse(constants.Layout, task.UpdatedTime) - latest, _ := time.Parse(constants.Layout, tasks[i].UpdatedTime) + latest, _ := time.Parse(constants.Layout, list[i].UpdatedTime) if latest.Before(earliest) { - task = tasks[i] + task = list[i] } } @@ -206,24 +207,25 @@ func (l *PageListTaskLogic) updateTaskStatus(tasks []*types.TaskModel, ch chan<- ch <- struct{}{} } -func (l *PageListTaskLogic) updateAiTaskStatus(tasks []*types.TaskModel, ch chan<- struct{}) { - for i := len(tasks) - 1; i >= 0; i-- { - if tasks[i].AdapterTypeDict != 1 || tasks[i].Status == constants.Succeeded || tasks[i].Status == constants.Failed { - tasks = append(tasks[:i], tasks[i+1:]...) +func (l *PageListTaskLogic) updateAiTaskStatus(tasklist []*types.TaskModel, ch chan<- struct{}) { + list := tasklist + for i := len(list) - 1; i >= 0; i-- { + if list[i].AdapterTypeDict != 1 || list[i].Status == constants.Succeeded || list[i].Status == constants.Failed { + list = append(list[:i], list[i+1:]...) } } - if len(tasks) == 0 { + if len(list) == 0 { ch <- struct{}{} return } - task := tasks[0] - for i, _ := range tasks { + task := list[0] + for i, _ := range list { earliest, _ := time.Parse(constants.Layout, task.UpdatedTime) - latest, _ := time.Parse(constants.Layout, tasks[i].UpdatedTime) + latest, _ := time.Parse(constants.Layout, list[i].UpdatedTime) if latest.Before(earliest) { - task = tasks[i] + task = list[i] } }