From 3a40d0d2c79eb0377d2e95969111e44364d7f385 Mon Sep 17 00:00:00 2001 From: marvzhang Date: Fri, 20 Mar 2020 08:33:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5ScheduleId=E5=88=B0Task?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/model/task.go | 2 +- backend/routes/spider.go | 31 +++++++++++---------- backend/routes/task.go | 31 +++++++++++---------- backend/services/challenge/run_random.go | 7 ++--- backend/services/schedule.go | 34 ++++++++++++++---------- 5 files changed, 59 insertions(+), 46 deletions(-) diff --git a/backend/model/task.go b/backend/model/task.go index 1793d0b8..6b2a44c1 100644 --- a/backend/model/task.go +++ b/backend/model/task.go @@ -26,7 +26,7 @@ type Task struct { TotalDuration float64 `json:"total_duration" bson:"total_duration"` Pid int `json:"pid" bson:"pid"` RunType string `json:"run_type" bson:"run_type"` - //ScheduleId bson.ObjectId `json:"schedule_id" bson:"schedule_id"` + ScheduleId bson.ObjectId `json:"schedule_id" bson:"schedule_id"` // 前端数据 SpiderName string `json:"spider_name"` diff --git a/backend/routes/spider.go b/backend/routes/spider.go index 8f7a513b..049e69b2 100644 --- a/backend/routes/spider.go +++ b/backend/routes/spider.go @@ -627,11 +627,12 @@ func RunSelectedSpider(c *gin.Context) { } for _, node := range nodes { t := model.Task{ - SpiderId: taskParam.SpiderId, - NodeId: node.Id, - Param: taskParam.Param, - UserId: services.GetCurrentUserId(c), - RunType: constants.RunTypeAllNodes, + SpiderId: taskParam.SpiderId, + NodeId: node.Id, + Param: taskParam.Param, + UserId: services.GetCurrentUserId(c), + RunType: constants.RunTypeAllNodes, + ScheduleId: bson.ObjectIdHex(constants.ObjectIdNull), } id, err := services.AddTask(t) @@ -645,10 +646,11 @@ func RunSelectedSpider(c *gin.Context) { } else if reqBody.RunType == constants.RunTypeRandom { // 随机 t := model.Task{ - SpiderId: taskParam.SpiderId, - Param: taskParam.Param, - UserId: services.GetCurrentUserId(c), - RunType: constants.RunTypeRandom, + SpiderId: taskParam.SpiderId, + Param: taskParam.Param, + UserId: services.GetCurrentUserId(c), + RunType: constants.RunTypeRandom, + ScheduleId: bson.ObjectIdHex(constants.ObjectIdNull), } id, err := services.AddTask(t) if err != nil { @@ -660,11 +662,12 @@ func RunSelectedSpider(c *gin.Context) { // 指定节点 for _, nodeId := range reqBody.NodeIds { t := model.Task{ - SpiderId: taskParam.SpiderId, - NodeId: nodeId, - Param: taskParam.Param, - UserId: services.GetCurrentUserId(c), - RunType: constants.RunTypeSelectedNodes, + SpiderId: taskParam.SpiderId, + NodeId: nodeId, + Param: taskParam.Param, + UserId: services.GetCurrentUserId(c), + RunType: constants.RunTypeSelectedNodes, + ScheduleId: bson.ObjectIdHex(constants.ObjectIdNull), } id, err := services.AddTask(t) diff --git a/backend/routes/task.go b/backend/routes/task.go index ecfbc71f..7e772ca5 100644 --- a/backend/routes/task.go +++ b/backend/routes/task.go @@ -112,11 +112,12 @@ func PutTask(c *gin.Context) { } for _, node := range nodes { t := model.Task{ - SpiderId: reqBody.SpiderId, - NodeId: node.Id, - Param: reqBody.Param, - UserId: services.GetCurrentUserId(c), - RunType: constants.RunTypeAllNodes, + SpiderId: reqBody.SpiderId, + NodeId: node.Id, + Param: reqBody.Param, + UserId: services.GetCurrentUserId(c), + RunType: constants.RunTypeAllNodes, + ScheduleId: bson.ObjectIdHex(constants.ObjectIdNull), } id, err := services.AddTask(t) @@ -130,10 +131,11 @@ func PutTask(c *gin.Context) { } else if reqBody.RunType == constants.RunTypeRandom { // 随机 t := model.Task{ - SpiderId: reqBody.SpiderId, - Param: reqBody.Param, - UserId: services.GetCurrentUserId(c), - RunType: constants.RunTypeRandom, + SpiderId: reqBody.SpiderId, + Param: reqBody.Param, + UserId: services.GetCurrentUserId(c), + RunType: constants.RunTypeRandom, + ScheduleId: bson.ObjectIdHex(constants.ObjectIdNull), } id, err := services.AddTask(t) if err != nil { @@ -145,11 +147,12 @@ func PutTask(c *gin.Context) { // 指定节点 for _, nodeId := range reqBody.NodeIds { t := model.Task{ - SpiderId: reqBody.SpiderId, - NodeId: nodeId, - Param: reqBody.Param, - UserId: services.GetCurrentUserId(c), - RunType: constants.RunTypeSelectedNodes, + SpiderId: reqBody.SpiderId, + NodeId: nodeId, + Param: reqBody.Param, + UserId: services.GetCurrentUserId(c), + RunType: constants.RunTypeSelectedNodes, + ScheduleId: bson.ObjectIdHex(constants.ObjectIdNull), } id, err := services.AddTask(t) diff --git a/backend/services/challenge/run_random.go b/backend/services/challenge/run_random.go index aad4fe21..30c63f0c 100644 --- a/backend/services/challenge/run_random.go +++ b/backend/services/challenge/run_random.go @@ -12,9 +12,10 @@ type RunRandomService struct { func (s *RunRandomService) Check() (bool, error) { query := bson.M{ - "user_id": s.UserId, - "run_type": constants.RunTypeRandom, - "status": constants.StatusFinished, + "user_id": s.UserId, + "run_type": constants.RunTypeRandom, + "status": constants.StatusFinished, + "schedule_id": bson.ObjectIdHex(constants.ObjectIdNull), } list, err := model.GetTaskList(query, 0, 1, "-_id") if err != nil { diff --git a/backend/services/schedule.go b/backend/services/schedule.go index ad41b969..78d430b1 100644 --- a/backend/services/schedule.go +++ b/backend/services/schedule.go @@ -51,11 +51,13 @@ func AddScheduleTask(s model.Schedule) func() { } for _, node := range nodes { t := model.Task{ - Id: id.String(), - SpiderId: s.SpiderId, - NodeId: node.Id, - Param: param, - UserId: s.UserId, + Id: id.String(), + SpiderId: s.SpiderId, + NodeId: node.Id, + Param: param, + UserId: s.UserId, + RunType: constants.RunTypeAllNodes, + ScheduleId: s.Id, } if _, err := AddTask(t); err != nil { @@ -65,10 +67,12 @@ func AddScheduleTask(s model.Schedule) func() { } else if s.RunType == constants.RunTypeRandom { // 随机 t := model.Task{ - Id: id.String(), - SpiderId: s.SpiderId, - Param: param, - UserId: s.UserId, + Id: id.String(), + SpiderId: s.SpiderId, + Param: param, + UserId: s.UserId, + RunType: constants.RunTypeRandom, + ScheduleId: s.Id, } if _, err := AddTask(t); err != nil { log.Errorf(err.Error()) @@ -79,11 +83,13 @@ func AddScheduleTask(s model.Schedule) func() { // 指定节点 for _, nodeId := range s.NodeIds { t := model.Task{ - Id: id.String(), - SpiderId: s.SpiderId, - NodeId: nodeId, - Param: param, - UserId: s.UserId, + Id: id.String(), + SpiderId: s.SpiderId, + NodeId: nodeId, + Param: param, + UserId: s.UserId, + RunType: constants.RunTypeSelectedNodes, + ScheduleId: s.Id, } if _, err := AddTask(t); err != nil {