package task import ( "analyze/internal/model/do" "analyze/internal/service" "context" "fmt" "github.com/gogf/gf/v2/frame/g" "time" ) func Manage(ctx context.Context) { // if do.TaskConfig.MarketAnalysis.TaskRun { MarketAnalysisOffline(ctx) } } // 市场分析报告 func MarketAnalysisOffline(ctx context.Context) { CrontabByTicker(do.TaskConfig.MarketAnalysis.FirstRun, do.TaskConfig.MarketAnalysis.Ticker, func() { //离线 市场分析报告 处理 g.Log().Info(ctx, "----------------------start-------------") service.InitUserInfo(ctx) g.Log().Info(ctx, "----------------------end-------------") }) } // CrontabByTicker 定时任务 func CrontabByTicker(flag bool, countdown int, f func()) { if flag { go f() } ticker := time.NewTicker(time.Duration(countdown) * time.Second) go func(t *time.Ticker) { for { select { case <-t.C: go f() fmt.Println("get ticker", time.Now().Format("2006-01-02 15:04:05")) } } }(ticker) }