+ UnmanageTasks

This commit is contained in:
gazebo
2019-08-28 09:19:43 +08:00
parent 3f69f94cbb
commit 4a54ea1ec2
3 changed files with 47 additions and 4 deletions

View File

@@ -7,10 +7,13 @@ import (
"git.rosy.net.cn/jx-callback/business/jxutils"
)
const (
defLastHours = 24
maxStoreHours = 48 // 最多存放小时数
)
var (
defTaskMan TaskMan
defLastHours = 24
maxStoreTime = 48 * time.Hour // 最多存两天时间
defTaskMan TaskMan
)
type TaskMan struct {
@@ -39,7 +42,7 @@ func (m *TaskMan) GetTasks(taskID string, fromStatus, toStatus int, lastHours in
}
func (m *TaskMan) ManageTask(task ITask) ITask {
m.taskMap.StoreWithTimeout(task.GetID(), task, maxStoreTime)
m.taskMap.StoreWithTimeout(task.GetID(), task, maxStoreHours*time.Hour)
return task
}
@@ -57,3 +60,15 @@ func IsTaskRunning(taskID string) bool {
}
return false
}
func UnmanageTasks(taskIDs []string) {
if len(taskIDs) == 0 {
allTasks := GetTasks("", TaskStatusBegin, TaskStatusEnd, maxStoreHours, "")
for _, v := range allTasks {
taskIDs = append(taskIDs, v.GetID())
}
}
for _, v := range taskIDs {
defTaskMan.taskMap.Delete(v)
}
}

View File

@@ -3,6 +3,8 @@ package controllers
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"github.com/astaxie/beego"
)
@@ -54,3 +56,20 @@ func (c *TaskController) CancelTask() {
return retVal, "", err
})
}
// @Title 取消管理任务
// @Description 取消管理任务
// @Param token header string true "认证token"
// @Param taskIDs query string false "任务ID列表"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UnmanageTasks [put]
func (c *TaskController) UnmanageTasks() {
c.callUnmanageTasks(func(params *tTaskUnmanageTasksParams) (retVal interface{}, errCode string, err error) {
var taskIDs []string
if err = jxutils.Strings2Objs(params.TaskIDs, &taskIDs); err == nil {
tasksch.UnmanageTasks(taskIDs)
}
return retVal, "", err
})
}

View File

@@ -1609,6 +1609,15 @@ func init() {
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TaskController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TaskController"],
beego.ControllerComments{
Method: "UnmanageTasks",
Router: `/UnmanageTasks`,
AllowHTTPMethods: []string{"put"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"],
beego.ControllerComments{
Method: "CheckSkuDiffBetweenJxAndVendor",