// 立即执行 func (this *TaskController) Run() { id, _ := this.GetInt("id") task, err := models.TaskGetById(id) if err != nil { this.showMsg(err.Error()) } job, err := jobs.NewJobFromTask(task) if err != nil { this.showMsg(err.Error()) } job.Run() this.redirect(beego.URLFor("TaskController.ViewLog", "id", job.GetLogId())) }
// 批量操作 func (this *TaskController) Batch() { action := this.GetString("action") ids := this.GetStrings("ids") if len(ids) < 1 { this.ajaxMsg("请选择要操作的项目", MSG_ERR) } for _, v := range ids { id, _ := strconv.Atoi(v) if id < 1 { continue } switch action { case "active": if task, err := models.TaskGetById(id); err == nil { job, err := jobs.NewJobFromTask(task) if err == nil { jobs.AddJob(task.CronSpec, job) task.Status = 1 task.Update() } } case "pause": jobs.RemoveJob(id) if task, err := models.TaskGetById(id); err == nil { task.Status = 0 task.Update() } case "delete": models.TaskDel(id) models.TaskLogDelByTaskId(id) jobs.RemoveJob(id) } } this.ajaxMsg("", MSG_OK) }
// 启动任务 func (this *TaskController) Start() { id, _ := this.GetInt("id") task, err := models.TaskGetById(id) if err != nil { this.showMsg(err.Error()) } job, err := jobs.NewJobFromTask(task) if err != nil { this.showMsg(err.Error()) } if jobs.AddJob(task.CronSpec, job) { task.Status = 1 task.Update() } refer := this.Ctx.Request.Referer() if refer == "" { refer = beego.URLFor("TaskController.List") } this.redirect(refer) }