123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- package services
- import (
- "context"
- "eta/eta_task/models/rag"
- "eta/eta_task/utils"
- "fmt"
- "time"
- )
- type WechatArticleOp struct {
- Source string
- WechatPlatformId int
- }
- // AddWechatArticleOpToCache
- // @Description: 将公众号文章操作加入缓存
- // @param wechatPlatformId
- // @param source
- // @return bool
- func AddWechatArticleOpToCache(wechatPlatformId int, source string) bool {
- record := new(WechatArticleOp)
- record.Source = source
- record.WechatPlatformId = wechatPlatformId
- if utils.Re == nil {
- err := utils.Rc.LPush(utils.CACHE_WECHAT_PLATFORM_ARTICLE, record)
- utils.FileLog.Info(fmt.Sprintf("将公众号文章操作 加入缓存 AddWechatArticleOpToCache LPush: 操作类型:%s,公众号id:%d", source, wechatPlatformId))
- if err != nil {
- fmt.Println("AddWechatArticleOpToCache LPush Err:" + err.Error())
- }
- return true
- }
- return false
- }
- // RefreshWechatPlatform
- // @Description: 刷新公众号
- // @author: Roc
- // @datetime 2025-03-14 18:46:05
- // @param cont context.Context
- // @return err error
- func RefreshWechatPlatform(cont context.Context) (err error) {
- utils.FileLog.Debug("RefreshWechatPlatform:", time.Now().Format(utils.FormatDateTime))
- obj := new(rag.WechatPlatform)
- platformList, tmpErr := obj.GetListByCondition(` AND enabled = 1 `, []interface{}{}, 0, 100000)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- for _, v := range platformList {
- AddWechatArticleOpToCache(v.WechatPlatformId, "refresh")
- time.Sleep(1 * time.Minute)
- }
- return
- }
- // AiTaskRecordOp
- // @Description: AI模块任务操作记录
- type AiTaskRecordOp struct {
- AiTaskRecordId int
- }
- // AddAiTaskRecordOpToCache
- // @Description: AI任务操作调度入队列
- // @author: Roc
- // @datetime 2025-04-24 09:41:11
- // @param aiTaskRecordId int
- // @return bool
- func AddAiTaskRecordOpToCache(aiTaskRecordId int) bool {
- // 如果不在发布和调试模式,那么就不加入缓存
- if !utils.InArrayByStr([]string{utils.BusinessCodeRelease, utils.BusinessCodeDebug}, utils.BusinessCode) {
- return true
- }
- record := new(AiTaskRecordOp)
- record.AiTaskRecordId = aiTaskRecordId
- if utils.Re == nil {
- err := utils.Rc.LPush(utils.CACHE_AI_ARTICLE_ABSTRACT_LLM_TASK, record)
- utils.FileLog.Info(fmt.Sprintf("将AI任务操作调度入队列 加入缓存 AddAiTaskRecordOpToCache LPush: 记录id:%d", aiTaskRecordId))
- if err != nil {
- fmt.Println("AddAiTaskRecordOpToCache LPush Err:" + err.Error())
- }
- return true
- }
- return false
- }
- func CheckAiTask(cont context.Context) (err error) {
- defer func() {
- if err != nil {
- utils.FileLog.Error("CheckAiTask err:", err)
- }
- }()
- count, err := utils.Rc.LLen(utils.CACHE_AI_ARTICLE_ABSTRACT_LLM_TASK)
- if err != nil {
- fmt.Println("CheckAiTask err:", err)
- }
- if count > 0 {
- return
- }
- // 队列没数据了,那么需要重新检查下任务状态,并将状态为待处理且未完成的任务加入到队列中
- aiTaskObj := rag.AiTask{}
- taskList, err := aiTaskObj.GetListByCondition(``, ` AND status = ? `, []interface{}{`processing`}, 0, 10)
- if err != nil {
- fmt.Println("CheckAiTask err:", err)
- return
- }
- if len(taskList) <= 0 {
- return
- }
- aiTaskRecordObj := rag.AiTaskRecord{}
- for _, v := range taskList {
- // 查找具体记录
- recordList, tmpErr := aiTaskRecordObj.GetAllListByCondition(``, ` AND ai_task_id = ? AND status = ? `, []interface{}{v.AiTaskID, `待处理`})
- if tmpErr != nil {
- fmt.Println(v.AiTaskID, "获取待处理记录失败; err:", tmpErr)
- continue
- }
- // 将具体记录加入到队列中
- for _, record := range recordList {
- AddAiTaskRecordOpToCache(record.AiTaskRecordID)
- }
- }
- return
- }
|