task.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package do
  2. import (
  3. "analyze/internal/model"
  4. "analyze/utility"
  5. "app.yhyue.com/moapp/jybase/mail"
  6. "github.com/gogf/gf/v2/encoding/gjson"
  7. "github.com/gogf/gf/v2/frame/g"
  8. )
  9. type taskInfo struct {
  10. FirstRun bool
  11. TaskRun bool
  12. Ticker int
  13. }
  14. type taskConfig struct {
  15. Name string
  16. MainSwitch bool
  17. MarketAnalysis taskInfo
  18. Message struct {
  19. Addr string `json:"addr"`
  20. Action string `json:"action"`
  21. CallPlatform string `json:"callPlatform"`
  22. } `json:"message"` // 消息api
  23. MessageInfo struct {
  24. Title string `json:"title"`
  25. MsgType int `json:"msgType"`
  26. Content string `json:"content"`
  27. Link struct {
  28. PcUrl string `json:"pcUrl"`
  29. AndroidUrl string `json:"androidUrl"`
  30. IosUrl string `json:"iosUrl"`
  31. WeChatUrl string `json:"weChatUrl"`
  32. } `json:"link"`
  33. } `json:"messageInfo"` // 市场分析报告消息配置
  34. Mail []struct {
  35. Addr string
  36. Port int
  37. Pwd string
  38. User string
  39. } `json:"mail"`
  40. MailAlarm struct {
  41. To []string `json:"to"` // 告警邮件接收人
  42. Title string `json:"title"` // 邮件标题
  43. ReTry int `json:"reTry"` // 重试次数
  44. } `json:"mailAlarm"`
  45. }
  46. var (
  47. TaskConfig taskConfig
  48. GmailAuth []*mail.GmailAuth
  49. SendMsg *utility.StationMessage
  50. )
  51. func init() {
  52. g.Log().Info(model.Ctx, "--定时任务配置初始化--开始--")
  53. var (
  54. task map[string]interface{}
  55. err error
  56. b []byte
  57. msg = "--定时任务配置初始化--异常--"
  58. )
  59. task, err = g.Cfg("task.yaml").Data(model.Ctx)
  60. if err == nil {
  61. b, err = gjson.Marshal(task)
  62. if err == nil {
  63. if err = gjson.Unmarshal(b, &TaskConfig); err == nil {
  64. msg = ""
  65. }
  66. }
  67. }
  68. if msg != "" {
  69. g.Log().Error(model.Ctx, msg)
  70. }
  71. // 处理邮件信息
  72. for _, v := range TaskConfig.Mail {
  73. m := &mail.GmailAuth{
  74. SmtpHost: v.Addr,
  75. SmtpPort: v.Port,
  76. User: v.User,
  77. Pwd: v.Pwd,
  78. }
  79. GmailAuth = append(GmailAuth, m)
  80. }
  81. SendMsg = utility.NewStationMessage(TaskConfig.Message.Addr, TaskConfig.Message.Action, TaskConfig.Message.CallPlatform)
  82. g.Log().Info(model.Ctx, "--定时任务配置初始化--结束--")
  83. }