From 9b60ddba27ef778419da5089e3b30ebe173afd7d Mon Sep 17 00:00:00 2001 From: yinbentan <yinbentan@live.com> Date: 星期五, 28 六月 2024 14:24:35 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/jialian' into jialian --- task/tasklist.go | 41 ++++++++++++++++++++++++++++++++--------- 1 files changed, 32 insertions(+), 9 deletions(-) diff --git a/task/tasklist.go b/task/tasklist.go index 755558d..ec6298b 100644 --- a/task/tasklist.go +++ b/task/tasklist.go @@ -4,19 +4,42 @@ "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.UTC) + 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, err := sysCfgService.GetInventoryCutOffPoint() + if err != nil { + return + } + 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 + } + } + if dynamicScheduler.Len() == 0 { + return + } + dynamicScheduler.StartAsync() + return nil +} + +func RestartDynamicTask() error { + if dynamicScheduler != nil { + dynamicScheduler.Stop() + dynamicScheduler.Clear() + } + return StartDynamicTask() } -- Gitblit v1.8.0