report_task.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package report
  2. import (
  3. "encoding/json"
  4. logger "eta/eta_mini_ht_api/common/component/log"
  5. "eta/eta_mini_ht_api/common/contants"
  6. "eta/eta_mini_ht_api/domian/report"
  7. "eta/eta_mini_ht_api/models/eta"
  8. "eta/eta_mini_ht_api/models/ht"
  9. "eta/eta_mini_ht_api/task/base"
  10. "sync"
  11. )
  12. var (
  13. taskName base.TaskType = "ETAReportSyncTask"
  14. cron = "0/10 * * * * *"
  15. )
  16. // Execute Task ETA取研报的数据
  17. func (re *ReportTask) Execute(taskDetail *base.TaskDetail) error {
  18. logger.Info(contants.TaskFormat, "同步ETA研报库开始")
  19. var wg sync.WaitGroup
  20. wg.Add(2)
  21. //ETA报告
  22. go func() {
  23. defer wg.Done()
  24. id, err := report.GetETALatestReportId()
  25. var etaReportList []eta.ETAReport
  26. etaReportList, err = eta.GetETAReports(id)
  27. if err != nil {
  28. logger.Error("获取ETA研报列表失败:%v", err)
  29. }
  30. if len(etaReportList) > 0 {
  31. var list []byte
  32. list, err = json.Marshal(etaReportList)
  33. if err == nil {
  34. taskDetail.Content = string(list)
  35. }
  36. err = report.SyncETAReportList(etaReportList)
  37. if err != nil {
  38. logger.Error("同步ETA研报列表失败:%v", err)
  39. }
  40. }
  41. logger.Info(contants.TaskFormat, "同步ETA研报库结束")
  42. }()
  43. //HT报告
  44. go func() {
  45. defer wg.Done()
  46. id, err := report.GetHTLatestReportId()
  47. var htReportList []ht.HTReport
  48. htReportList, err = ht.GetHTReports(id)
  49. if err != nil {
  50. logger.Error("获取ETA研报列表失败:%v", err)
  51. }
  52. if len(htReportList) > 0 {
  53. var list []byte
  54. list, err = json.Marshal(htReportList)
  55. if err == nil {
  56. taskDetail.Content = string(list)
  57. }
  58. err = report.SyncHTReportList(htReportList)
  59. if err != nil {
  60. logger.Error("同步ETA研报列表失败:%v", err)
  61. }
  62. }
  63. logger.Info(contants.TaskFormat, "同步ETA研报库结束")
  64. }()
  65. wg.Wait()
  66. return nil
  67. }
  68. type ReportTask struct {
  69. }
  70. func init() {
  71. reportTask := base.NewTask(taskName, cron, new(ReportTask), base.FORBIDDEN)
  72. base.RegisterTask(&reportTask)
  73. }