func InitJobs() { list, _ := models.TaskGetList(1, 1000000, "status", 1) for _, task := range list { job, err := NewJobFromTask(task) if err != nil { beego.Error("InitJobs:", err.Error()) continue } AddJob(task.CronSpec, job) } }
// 任务列表 func (this *TaskController) List() { page, _ := this.GetInt("page") if page < 1 { page = 1 } groupId, _ := this.GetInt("groupid") filters := make([]interface{}, 0) if groupId > 0 { filters = append(filters, "group_id", groupId) } result, count := models.TaskGetList(page, this.pageSize, filters...) list := make([]map[string]interface{}, len(result)) for k, v := range result { row := make(map[string]interface{}) row["id"] = v.Id row["name"] = v.TaskName row["cron_spec"] = v.CronSpec row["status"] = v.Status row["description"] = v.Description e := jobs.GetEntryById(v.Id) if e != nil { row["next_time"] = beego.Date(e.Next, "Y-m-d H:i:s") row["prev_time"] = "-" if e.Prev.Unix() > 0 { row["prev_time"] = beego.Date(e.Prev, "Y-m-d H:i:s") } else if v.PrevTime > 0 { row["prev_time"] = beego.Date(time.Unix(v.PrevTime, 0), "Y-m-d H:i:s") } row["running"] = 1 } else { row["next_time"] = "-" if v.PrevTime > 0 { row["prev_time"] = beego.Date(time.Unix(v.PrevTime, 0), "Y-m-d H:i:s") } else { row["prev_time"] = "-" } row["running"] = 0 } list[k] = row } // 分组列表 groups, _ := models.TaskGroupGetList(1, 100) this.Data["pageTitle"] = "任务列表" this.Data["list"] = list this.Data["groups"] = groups this.Data["groupid"] = groupId this.Data["pageBar"] = libs.NewPager(page, int(count), this.pageSize, beego.URLFor("TaskController.List", "groupid", groupId), true).ToString() this.display() }