package jobs import ( "fmt" "time" "github.com/robfig/cron/v3" ) type ExecJob struct { JobCore } func (e *ExecJob) Run() { startTime := time.Now() var obj = jobList[e.InvokeTarget] if obj == nil { jobLogger.Warnf("[Job] ExecJob Run jobs nil [%s]", e.Name) return } err := CallExec(obj.(JobExec), e.Args) if err != nil { // 如果失败暂停一段时间重试 fmt.Println(time.Now().Format(timeFormat), " [ERROR] mission failed! ", err) } // 结束时间 endTime := time.Now() // 执行时间 latencyTime := endTime.Sub(startTime) //TODO: 待完善部分 //str := time.Now().Format(timeFormat) + " [INFO] JobCore " + string(e.EntryId) + "exec success , spend :" + latencyTime.String() //ws.SendAll(str) jobLogger.Infof("[%s] EXEC SUCCESS , SPEND :%v", e.Name, latencyTime) return } func (e *ExecJob) addJob(c *cron.Cron) (int, error) { id, err := c.AddJob(e.CronExpression, e) if err != nil { jobLogger.Errorf("AddJob ERROR: %s", err.Error()) return 0, err } EntryId := int(id) return EntryId, nil }