From 4ca3791590a7bf50222aa5f80e53edf04739108a Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 22 十月 2024 17:20:23 +0800 Subject: [PATCH] fix 1400 post floor farmat --- service/resend.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 10 deletions(-) diff --git a/service/resend.go b/service/resend.go index ca9e837..6961f45 100644 --- a/service/resend.go +++ b/service/resend.go @@ -1,24 +1,60 @@ 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() + if total == 0 { + return + } + + logger.Info("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.") } } -- Gitblit v1.8.0