task.go 978 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package task
  2. import (
  3. "analyze/internal/model/do"
  4. "analyze/internal/service"
  5. "context"
  6. "fmt"
  7. "github.com/gogf/gf/v2/frame/g"
  8. "time"
  9. )
  10. func Manage(ctx context.Context) {
  11. //
  12. if do.TaskConfig.MarketAnalysis.TaskRun {
  13. MarketAnalysisOffline(ctx)
  14. }
  15. }
  16. // 市场分析报告
  17. func MarketAnalysisOffline(ctx context.Context) {
  18. CrontabByTicker(do.TaskConfig.MarketAnalysis.FirstRun, do.TaskConfig.MarketAnalysis.Ticker, func() {
  19. //离线 市场分析报告 处理
  20. g.Log().Info(ctx, "----------------------start-------------")
  21. service.InitUserInfo(ctx)
  22. g.Log().Info(ctx, "----------------------end-------------")
  23. })
  24. }
  25. // CrontabByTicker 定时任务
  26. func CrontabByTicker(flag bool, countdown int, f func()) {
  27. if flag {
  28. go f()
  29. }
  30. ticker := time.NewTicker(time.Duration(countdown) * time.Second)
  31. go func(t *time.Ticker) {
  32. for {
  33. select {
  34. case <-t.C:
  35. go f()
  36. fmt.Println("get ticker", time.Now().Format("2006-01-02 15:04:05"))
  37. }
  38. }
  39. }(ticker)
  40. }