task.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package services
  2. import (
  3. "encoding/json"
  4. "eta_gn/eta_report/utils"
  5. "fmt"
  6. )
  7. func InitTask() {
  8. // 监听生成报告长图及pdf
  9. //go ListenReport2ImgQueue()
  10. }
  11. // Report2ImgQueueReq 报告生成长图请求体
  12. type Report2ImgQueueReq struct {
  13. ReportType int `description:"报告类型: 1-研报; 2-智能研报"`
  14. ReportCode string `description:"报告唯一编码"`
  15. }
  16. // ListenReport2ImgQueue 监听生成报告长图及pdf
  17. func ListenReport2ImgQueue() {
  18. defer func() {
  19. if err := recover(); err != nil {
  20. fmt.Println("[ListenReport2ImgQueue] recover: ", err)
  21. utils.FileLog.Info(fmt.Sprintf("[ListenReport2ImgQueue] recover: %v", err))
  22. }
  23. }()
  24. for {
  25. if utils.Re != nil {
  26. fmt.Println("[ListenReport2ImgQueue] Re err: ", utils.Re.Error())
  27. utils.FileLog.Info(fmt.Sprintf("[ListenReport2ImgQueue] Re err: %s", utils.Re.Error()))
  28. continue
  29. }
  30. utils.Rc.Brpop(utils.CACHE_CREATE_REPORT_IMGPDF_QUEUE, func(b []byte) {
  31. var req Report2ImgQueueReq
  32. if e := json.Unmarshal(b, &req); e != nil {
  33. t := fmt.Sprintf("[ListenReport2ImgQueue] Unmarshal err: %s, b: %s", e.Error(), string(b))
  34. fmt.Println(t)
  35. utils.FileLog.Info(t)
  36. return
  37. }
  38. CreateReportImgAndPdf(req)
  39. })
  40. }
  41. }