zhangzengfei
2024-06-06 dc765761b9bb6866635f06f754d28895507e711f
service/resend.go
@@ -1,24 +1,56 @@
package service
import (
   "gat1400Exchange/client"
   "gat1400Exchange/config"
   "gat1400Exchange/models"
   "gat1400Exchange/pkg/logger"
   "gat1400Exchange/util"
   "gat1400Exchange/vo"
)
func ResendImageData() {
   var cacheMod models.Cache
   cacheItems, _ := cacheMod.FindAll()
var resendTaskRunning bool
   for _, c := range cacheItems {
      if !util.SendData([]byte(c.Data), config.ForwardConf.SyncServer) {
         c.UpdateRetryCount()
         logger.Warn("The data resend failed. retry count %d", c.Retry+1)
      } else {
         c.Delete()
         logger.Debug("The data resend successful.")
func ResendImageData() {
   if resendTaskRunning {
      return
   }
   resendTaskRunning = true
   defer func() { resendTaskRunning = false }()
   var cacheMod models.Cache
   total, _ := cacheMod.Count()
   logger.Debug("Start resend task. cache len:%d", total)
   for i := 0; i < int(total); i++ {
      var c models.Cache
      err := c.First()
      if err != nil {
         logger.Error(err.Error())
         return
      }
      if c.Type == "1400-face" {
         if client.FaceCapture([]byte(c.Data)) != vo.StatusSuccess {
            c.UpdateRetryCount()
            logger.Warn("The data resend failed. retry count %d", c.Retry+1)
            return
         }
      } else if c.Type == "1400-person" {
         if client.PersonCapture([]byte(c.Data)) != vo.StatusSuccess {
            c.UpdateRetryCount()
            logger.Warn("The data resend failed. retry count %d", c.Retry+1)
            return
         }
      } else {
         if !util.SendData([]byte(c.Data), config.ForwardConf.SyncServer) {
            c.UpdateRetryCount()
            logger.Warn("The data resend failed. retry count %d", c.Retry+1)
            return
         }
      }
      c.Delete()
      logger.Debug("The data resend successful.")
   }
}