job_sys.go 808 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package jobs
  2. import (
  3. "time"
  4. "github.com/robfig/cron/v3"
  5. )
  6. type ExecJob struct {
  7. JobCore
  8. }
  9. func (e *ExecJob) Run() {
  10. startTime := time.Now()
  11. var obj = jobList[e.InvokeTarget]
  12. if obj == nil {
  13. jobLogger.Warnf("[Job] ExecJob Run jobs nil [%s]", e.Name)
  14. return
  15. }
  16. err := CallExec(obj.(JobExec), &e.JobCore)
  17. if err != nil {
  18. jobLogger.Errorf("[%s] EXEC FAILED! %s", e.Name, err.Error())
  19. }
  20. // 结束时间
  21. endTime := time.Now()
  22. // 执行时间
  23. latencyTime := endTime.Sub(startTime)
  24. jobLogger.Infof("[%s] EXEC SUCCESS , SPEND :%v", e.Name, latencyTime)
  25. return
  26. }
  27. func (e *ExecJob) addJob(c *cron.Cron) (int, error) {
  28. id, err := c.AddJob(e.CronExpression, e)
  29. if err != nil {
  30. jobLogger.Errorf("AddJob ERROR: %s", err.Error())
  31. return 0, err
  32. }
  33. EntryId := int(id)
  34. return EntryId, nil
  35. }