diff --git a/models/job.go b/models/job.go index 5a093be..5881985 100644 --- a/models/job.go +++ b/models/job.go @@ -173,11 +173,11 @@ func (j *Job) Run() { cmd, t := strings.Split(j.Command, " "), time.Now() out, err := exec.Command(cmd[0], cmd[1:]...).Output() if err != nil { - j.fail(t, err) + j.Fail(t, err) return } - j.success(t, out) + j.Success(t, out) } func JobKey(group, id string) string { @@ -217,10 +217,10 @@ func (j *Job) Check() error { } // 执行结果写入 mongoDB -func (j *Job) success(t time.Time, out []byte) { +func (j *Job) Success(t time.Time, out []byte) { CreateJobLog(j, t, string(out), true) } -func (j *Job) fail(t time.Time, err error) { +func (j *Job) Fail(t time.Time, err error) { CreateJobLog(j, t, err.Error(), false) } diff --git a/node/node.go b/node/node.go index 2ca7bba..421e90b 100644 --- a/node/node.go +++ b/node/node.go @@ -144,14 +144,16 @@ func (n *Node) addJob(job *models.Job) bool { n.jobs[j.GetID()] = j } + j.RunOn(n.Node.ID) if err := n.Cron.AddJob(sch, j); err != nil { - log.Warnf("job[%s] timer[%s] parse err: %s", j.GetID(), sch) + err = fmt.Errorf("job[%s] timer[%s] parse err: %s", j.GetID(), sch, err.Error()) + log.Warn(err.Error()) + j.Fail(time.Now(), err) delete(n.jobs, j.GetID()) return false } n.addLink(gid, j.GetID()) - j.RunOn(n.Node.ID) return true }