zhaoqingang
2025-02-08 fc080b51e1335a9e1056b921fd4a0ed05085d644
cron/cron.go
@@ -1,12 +1,14 @@
package cron
import (
   "time"
   "github.com/go-co-op/gocron"
   "model-engine/models"
   "model-engine/pkg/logger"
   "model-engine/pkg/safe"
   "model-engine/service"
   "time"
)
var s *gocron.Scheduler
@@ -20,18 +22,25 @@
   if err != nil {
      panic(err)
   }
   for _, task := range tasks {
      model, err := models.GetModel(task.ModelID)
      if err != nil {
         logger.Errorf("can not find model for id:%v", task.ModelID)
         continue
      }
      task := task
      t := task
      safe.Go(func() {
         if err := model.Init(task); err != nil {
         if err := model.Init(t); err != nil {
            logger.Warnf("Init task %s. %s", t.Name, err.Error())
            return
         }
         model.KeepAlive()
         if err := model.Run(); err != nil {
            logger.Warnf("Run task %s. %s", t.Name, err.Error())
            return
         }
         if err := model.Shutdown(); err != nil {
@@ -42,7 +51,7 @@
}
func Run() (err error) {
   _, err = s.Every(1).Minute().StartImmediately().Do(Dispatch)
   _, err = s.Every(3).Minute().StartImmediately().Do(Dispatch)
   if err != nil {
      return err
   }