zhangqian
2024-07-01 73b6baf6af3d88cdcb0e2df7932a9bd96b0b85c5
task/tasklist.go
@@ -4,19 +4,44 @@
   "github.com/go-co-op/gocron"
   "time"
   "wms/pkg/logx"
   "wms/service"
)
var s *gocron.Scheduler
var dynamicScheduler *gocron.Scheduler
func init() {
   s = gocron.NewScheduler(time.Local)
   dynamicScheduler = gocron.NewScheduler(time.Local)
}
func Init() {
   _, err := s.Every(1).Month(1).Do(MonthStats) //每月初执行一次
   if err != nil {
      logx.Errorf("init task err:%v", err)
      panic(err)
   }
func Init() error {
   return StartDynamicTask()
}
   s.StartAsync()
func StartDynamicTask() (err error) {
   sysCfgService := service.NewSystemConfigService()
   day, timeStr, _ := sysCfgService.GetInventoryCutOffPoint()
   if day != 0 && timeStr != "" {
      _, err = dynamicScheduler.Every(1).Month(day).At(timeStr).Do(MonthStats) //每月初执行一次
      if err != nil {
         logx.Errorf("init task err:%v", err)
         return err
      }
      _, err = dynamicScheduler.Every(1).Month(day).At(timeStr).Do(WarehouseMonthStats) //每月初执行一次
      if err != nil {
         logx.Errorf("init task err:%v", err)
         return err
      }
   }
   if dynamicScheduler.Len() == 0 {
      return
   }
   dynamicScheduler.StartAsync()
   return nil
}
func RestartDynamicTask() error {
   if dynamicScheduler != nil {
      dynamicScheduler.Stop()
      dynamicScheduler.Clear()
   }
   return StartDynamicTask()
}