wechat_platform.go 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package services
  2. import (
  3. "context"
  4. "eta/eta_task/models/rag"
  5. "eta/eta_task/utils"
  6. "fmt"
  7. "time"
  8. )
  9. type WechatArticleOp struct {
  10. Source string
  11. WechatPlatformId int
  12. }
  13. // AddWechatArticleOpToCache
  14. // @Description: 将公众号文章操作加入缓存
  15. // @param wechatPlatformId
  16. // @param source
  17. // @return bool
  18. func AddWechatArticleOpToCache(wechatPlatformId int, source string) bool {
  19. record := new(WechatArticleOp)
  20. record.Source = source
  21. record.WechatPlatformId = wechatPlatformId
  22. if utils.Re == nil {
  23. err := utils.Rc.LPush(utils.CACHE_WECHAT_PLATFORM_ARTICLE, record)
  24. utils.FileLog.Info(fmt.Sprintf("将公众号文章操作 加入缓存 AddWechatArticleOpToCache LPush: 操作类型:%s,公众号id:%d", source, wechatPlatformId))
  25. if err != nil {
  26. fmt.Println("AddWechatArticleOpToCache LPush Err:" + err.Error())
  27. }
  28. return true
  29. }
  30. return false
  31. }
  32. // RefreshWechatPlatform
  33. // @Description: 刷新公众号
  34. // @author: Roc
  35. // @datetime 2025-03-14 18:46:05
  36. // @param cont context.Context
  37. // @return err error
  38. func RefreshWechatPlatform(cont context.Context) (err error) {
  39. utils.FileLog.Debug("RefreshWechatPlatform:", time.Now().Format(utils.FormatDateTime))
  40. obj := new(rag.WechatPlatform)
  41. platformList, tmpErr := obj.GetListByCondition(` AND enabled = 1 `, []interface{}{}, 0, 100000)
  42. if tmpErr != nil {
  43. err = tmpErr
  44. return
  45. }
  46. for _, v := range platformList {
  47. AddWechatArticleOpToCache(v.WechatPlatformId, "refresh")
  48. time.Sleep(1 * time.Minute)
  49. }
  50. return
  51. }
  52. // AiTaskRecordOp
  53. // @Description: AI模块任务操作记录
  54. type AiTaskRecordOp struct {
  55. AiTaskRecordId int
  56. }
  57. // AddAiTaskRecordOpToCache
  58. // @Description: AI任务操作调度入队列
  59. // @author: Roc
  60. // @datetime 2025-04-24 09:41:11
  61. // @param aiTaskRecordId int
  62. // @return bool
  63. func AddAiTaskRecordOpToCache(aiTaskRecordId int) bool {
  64. // 如果不在发布和调试模式,那么就不加入缓存
  65. if !utils.InArrayByStr([]string{utils.BusinessCodeRelease, utils.BusinessCodeDebug}, utils.BusinessCode) {
  66. return true
  67. }
  68. record := new(AiTaskRecordOp)
  69. record.AiTaskRecordId = aiTaskRecordId
  70. if utils.Re == nil {
  71. err := utils.Rc.LPush(utils.CACHE_AI_ARTICLE_ABSTRACT_LLM_TASK, record)
  72. utils.FileLog.Info(fmt.Sprintf("将AI任务操作调度入队列 加入缓存 AddAiTaskRecordOpToCache LPush: 记录id:%d", aiTaskRecordId))
  73. if err != nil {
  74. fmt.Println("AddAiTaskRecordOpToCache LPush Err:" + err.Error())
  75. }
  76. return true
  77. }
  78. return false
  79. }
  80. func CheckAiTask(cont context.Context) (err error) {
  81. defer func() {
  82. if err != nil {
  83. utils.FileLog.Error("CheckAiTask err:", err)
  84. }
  85. }()
  86. count, err := utils.Rc.LLen(utils.CACHE_AI_ARTICLE_ABSTRACT_LLM_TASK)
  87. if err != nil {
  88. fmt.Println("CheckAiTask err:", err)
  89. }
  90. if count > 0 {
  91. return
  92. }
  93. // 队列没数据了,那么需要重新检查下任务状态,并将状态为待处理且未完成的任务加入到队列中
  94. aiTaskObj := rag.AiTask{}
  95. taskList, err := aiTaskObj.GetListByCondition(``, ` AND status = ? `, []interface{}{`processing`}, 0, 10)
  96. if err != nil {
  97. fmt.Println("CheckAiTask err:", err)
  98. return
  99. }
  100. if len(taskList) <= 0 {
  101. return
  102. }
  103. aiTaskRecordObj := rag.AiTaskRecord{}
  104. for _, v := range taskList {
  105. // 查找具体记录
  106. recordList, tmpErr := aiTaskRecordObj.GetAllListByCondition(``, ` AND ai_task_id = ? AND status = ? `, []interface{}{v.AiTaskID, `待处理`})
  107. if tmpErr != nil {
  108. fmt.Println(v.AiTaskID, "获取待处理记录失败; err:", tmpErr)
  109. continue
  110. }
  111. // 将具体记录加入到队列中
  112. for _, record := range recordList {
  113. AddAiTaskRecordOpToCache(record.AiTaskRecordID)
  114. }
  115. }
  116. return
  117. }