Files
jx-callback/controllers/cms_task.go
2019-03-06 11:15:18 +08:00

57 lines
1.9 KiB
Go

package controllers
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"github.com/astaxie/beego"
)
type TaskController struct {
beego.Controller
}
// @Title 查询长时间运行任务
// @Description 查询长时间运行任务
// @Param token header string true "认证token"
// @Param taskID query string false "任务ID"
// @Param fromStatus query int false "起始状态"
// @Param toStatus query int false "结束状态"
// @Param lastHours query int false "多少小时以内的"
// @Param createdBy query string false "创建人"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetTasks [get]
func (c *TaskController) GetTasks() {
c.callGetTasks(func(params *tTaskGetTasksParams) (retVal interface{}, errCode string, err error) {
if params.MapData["fromStatus"] == nil {
params.FromStatus = tasksch.TaskStatusBegin
if params.MapData["toStatus"] == nil {
params.ToStatus = tasksch.TaskStatusEnd
}
} else if params.MapData["toStatus"] == nil {
params.ToStatus = params.FromStatus
}
retVal = tasksch.GetTasks(params.TaskID, params.FromStatus, params.ToStatus, params.LastHours, params.CreatedBy)
return retVal, "", err
})
}
// @Title 取消长时间运行任务
// @Description 取消长时间运行任务
// @Param token header string true "认证token"
// @Param taskID query string true "任务ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /CancelTask [put]
func (c *TaskController) CancelTask() {
c.callCancelTask(func(params *tTaskCancelTaskParams) (retVal interface{}, errCode string, err error) {
tasks := tasksch.GetTasks(params.TaskID, tasksch.TaskStatusBegin, tasksch.TaskStatusEnd, 3*24, "")
if len(tasks) != 1 {
return nil, "", fmt.Errorf("taskID:%s,找不到或找到不仅一个任务", params.TaskID)
}
tasks[0].Cancel()
return retVal, "", err
})
}