task_starter.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package task
  2. import (
  3. "eta/eta_mini_ht_api/common/component/config"
  4. "eta/eta_mini_ht_api/common/contants"
  5. "eta/eta_mini_ht_api/task/base"
  6. _ "eta/eta_mini_ht_api/task/eta/author"
  7. _ "eta/eta_mini_ht_api/task/message"
  8. _ "eta/eta_mini_ht_api/task/report"
  9. _ "eta/eta_mini_ht_api/task/sms"
  10. "github.com/beego/beego/v2/server/web"
  11. "github.com/beego/beego/v2/task"
  12. )
  13. func AddTasksToScheduler() {
  14. for _, t := range base.GetTasks() {
  15. //if t.RunMode == web.BConfig.RunMode {
  16. if needAddTask(t.RunMode, web.BConfig.RunMode) {
  17. tk := task.NewTask(string(t.Name), t.Cron, t.Run)
  18. task.AddTask(string(t.Name), tk)
  19. }
  20. }
  21. }
  22. func needAddTask(taskRunMode string, runMode string) bool {
  23. switch taskRunMode {
  24. case base.PROD:
  25. return runMode == base.PROD
  26. case base.TEST:
  27. return runMode != base.PROD
  28. case base.DEV:
  29. return runMode == base.DEV
  30. case base.FORBIDDEN:
  31. return false
  32. default:
  33. return false
  34. }
  35. }
  36. // StartScheduler 启动任务调度器
  37. func StartScheduler() {
  38. htConfig := config.GetConfig(contants.HT).(*config.HTBizConfig)
  39. if htConfig.EnableTask() {
  40. task.StartTask()
  41. }
  42. }
  43. func init() {
  44. AddTasksToScheduler()
  45. StartScheduler()
  46. }