mirror of
https://github.com/crawlab-team/crawlab.git
synced 2026-01-26 17:49:15 +01:00
加入重试
This commit is contained in:
@@ -231,6 +231,7 @@ func main() {
|
||||
authGroup.GET("/tasks/:id/log", routes.GetTaskLog) // 任务日志
|
||||
authGroup.GET("/tasks/:id/results", routes.GetTaskResults) // 任务结果
|
||||
authGroup.GET("/tasks/:id/results/download", routes.DownloadTaskResultsCsv) // 下载任务结果
|
||||
authGroup.POST("/tasks/:id/restart", routes.RestartTask) // 重新开始任务
|
||||
}
|
||||
// 定时任务
|
||||
{
|
||||
|
||||
@@ -353,3 +353,15 @@ func CancelTask(c *gin.Context) {
|
||||
}
|
||||
HandleSuccess(c)
|
||||
}
|
||||
|
||||
func RestartTask(c *gin.Context) {
|
||||
id := c.Param("id")
|
||||
|
||||
uid := services.GetCurrentUserId(c)
|
||||
|
||||
if err := services.RestartTask(id, uid); err != nil {
|
||||
HandleError(http.StatusInternalServerError, c, err)
|
||||
return
|
||||
}
|
||||
HandleSuccess(c)
|
||||
}
|
||||
@@ -675,6 +675,35 @@ func CancelTask(id string) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func RestartTask(id string, uid bson.ObjectId) (err error) {
|
||||
// 获取任务
|
||||
oldTask, err := model.GetTask(id)
|
||||
if err != nil {
|
||||
log.Errorf("task not found, task id : %s, error: %s", id, err.Error())
|
||||
debug.PrintStack()
|
||||
return err
|
||||
}
|
||||
|
||||
newTask := model.Task{
|
||||
SpiderId: oldTask.SpiderId,
|
||||
NodeId: oldTask.NodeId,
|
||||
Param: oldTask.Param,
|
||||
UserId: uid,
|
||||
RunType: oldTask.RunType,
|
||||
ScheduleId: bson.ObjectIdHex(constants.ObjectIdNull),
|
||||
}
|
||||
|
||||
// 加入任务队列
|
||||
_, err = AddTask(newTask)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
debug.PrintStack()
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func AddTask(t model.Task) (string, error) {
|
||||
// 生成任务ID
|
||||
id := uuid.NewV4()
|
||||
|
||||
Reference in New Issue
Block a user