添加运行类别

This commit is contained in:
marvzhang
2019-12-05 11:51:54 +08:00
parent c5fad12854
commit e8edf9dac4
4 changed files with 90 additions and 21 deletions

View File

@@ -15,7 +15,7 @@ type Scheduler struct {
cron *cron.Cron
}
func AddTask(s model.Schedule) func() {
func AddScheduleTask(s model.Schedule) func() {
return func() {
node, err := model.GetNodeByKey(s.NodeKey)
if err != nil || node.Id.Hex() == "" {
@@ -97,7 +97,7 @@ func (s *Scheduler) AddJob(job model.Schedule) error {
spec := job.Cron
// 添加任务
eid, err := s.cron.AddFunc(spec, AddTask(job))
eid, err := s.cron.AddFunc(spec, AddScheduleTask(job))
if err != nil {
log.Errorf("add func task error: %s", err.Error())
debug.PrintStack()

View File

@@ -10,6 +10,8 @@ import (
"encoding/json"
"errors"
"github.com/apex/log"
"github.com/globalsign/mgo/bson"
uuid "github.com/satori/go.uuid"
"github.com/spf13/viper"
"os"
"os/exec"
@@ -581,6 +583,32 @@ func CancelTask(id string) (err error) {
return nil
}
func AddTask(t model.Task) error {
// 生成任务ID
id := uuid.NewV4()
t.Id = id.String()
// 设置任务状态
t.Status = constants.StatusPending
// 如果没有传入node_id则置为null
if t.NodeId.Hex() == "" {
t.NodeId = bson.ObjectIdHex(constants.ObjectIdNull)
}
// 将任务存入数据库
if err := model.AddTask(t); err != nil {
return err
}
// 加入任务队列
if err := AssignTask(t); err != nil {
return err
}
return nil
}
func HandleTaskError(t model.Task, err error) {
log.Error("handle task error:" + err.Error())
t.Status = constants.StatusError