| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package jobs
- import (
- "IotAdmin/common/jobs/models"
- "IotAdmin/core/sdk"
- "IotAdmin/core/tools/utils"
- "fmt"
- "github.com/robfig/cron/v3"
- )
- func CallExec(e JobExec, jobCore *JobCore) error {
- job := &models.SysJob{
- JobId: jobCore.JobId,
- }
- db := sdk.Runtime.GetDbByKey(jobCore.DbKey)
- if db == nil {
- err := fmt.Errorf("【%s】 EXEC DB ERROR:%s %s", jobCore.Name, jobCore.DbKey, "db is nil")
- return err
- }
- err := job.Get(db, job)
- if err != nil {
- err = fmt.Errorf("【%s】 EXEC DB ERROR: %s", jobCore.Name, err.Error())
- return err
- }
- jobLogger.Infof("【%s】 EXEC START", jobCore.Name)
- job.ExecCount++
- job.LastExecTime = utils.NowLong()
- err = e.Exec(jobCore)
- if err != nil {
- job.FailCount++
- jobLogger.Errorf("【%s】 EXEC ERROR: %s", jobCore.Name, err.Error())
- }
- crontab := sdk.Runtime.GetCrontabKey(jobCore.DbKey)
- entry := crontab.Entry(cron.EntryID(job.EntryId))
- job.NextExecTime = utils.Time2Long(entry.Next)
- jobLogger.Infof("【%s】 EXEC END\r\n", jobCore.Name)
- if err2 := job.Update(db, job.JobId); err2 != nil {
- err = fmt.Errorf("【%s】 EXEC DB ERROR: %s", jobCore.Name, err2.Error())
- }
- return err
- }
|