+ UnmanageTasks
This commit is contained in:
@@ -7,10 +7,13 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
defLastHours = 24
|
||||||
|
maxStoreHours = 48 // 最多存放小时数
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
defTaskMan TaskMan
|
defTaskMan TaskMan
|
||||||
defLastHours = 24
|
|
||||||
maxStoreTime = 48 * time.Hour // 最多存两天时间
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type TaskMan struct {
|
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 {
|
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
|
return task
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,3 +60,15 @@ func IsTaskRunning(taskID string) bool {
|
|||||||
}
|
}
|
||||||
return false
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package controllers
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||||
"github.com/astaxie/beego"
|
"github.com/astaxie/beego"
|
||||||
)
|
)
|
||||||
@@ -54,3 +56,20 @@ func (c *TaskController) CancelTask() {
|
|||||||
return retVal, "", err
|
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
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -1609,6 +1609,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: 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.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:TempOpController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "CheckSkuDiffBetweenJxAndVendor",
|
Method: "CheckSkuDiffBetweenJxAndVendor",
|
||||||
|
|||||||
Reference in New Issue
Block a user