task.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. FalseMsg string `json:"false_msg"`
  46. UserTask struct {
  47. PtChan int `json:"ptChan"`
  48. Ticker int `json:"ticker"`
  49. } `json:"userTask"`
  50. }
  51. var (
  52. TaskConfig taskConfig
  53. GmailAuth []*mail.GmailAuth
  54. SendMsg *utility.StationMessage
  55. )
  56. func init() {
  57. g.Log().Info(model.Ctx, "--定时任务配置初始化--开始--")
  58. var (
  59. task map[string]interface{}
  60. err error
  61. b []byte
  62. msg = "--定时任务配置初始化--异常--"
  63. )
  64. task, err = g.Cfg("task.yaml").Data(model.Ctx)
  65. if err == nil {
  66. b, err = gjson.Marshal(task)
  67. if err == nil {
  68. if err = gjson.Unmarshal(b, &TaskConfig); err == nil {
  69. msg = ""
  70. }
  71. }
  72. }
  73. if msg != "" {
  74. g.Log().Error(model.Ctx, msg)
  75. }
  76. // 处理邮件信息
  77. for _, v := range TaskConfig.Mail {
  78. m := &mail.GmailAuth{
  79. SmtpHost: v.Addr,
  80. SmtpPort: v.Port,
  81. User: v.User,
  82. Pwd: v.Pwd,
  83. }
  84. GmailAuth = append(GmailAuth, m)
  85. }
  86. SendMsg = utility.NewStationMessage(TaskConfig.Message.Addr, TaskConfig.Message.Action, TaskConfig.Message.CallPlatform)
  87. g.Log().Info(model.Ctx, "--定时任务配置初始化--结束--")
  88. }