From bb48a3ef0bdc2b5a0b50ca429bc5bc0a118f9732 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期五, 13 九月 2024 02:49:22 +0800
Subject: [PATCH] use goroutinne run rfid read
---
service/resend.go | 39 +++++++++++++++++++++++++++++----------
1 files changed, 29 insertions(+), 10 deletions(-)
diff --git a/service/resend.go b/service/resend.go
index e56ffc1..6961f45 100644
--- a/service/resend.go
+++ b/service/resend.go
@@ -9,28 +9,47 @@
"gat1400Exchange/vo"
)
-func ResendImageData() {
- var cacheMod models.Cache
- cacheItems, _ := cacheMod.FindAll()
+var resendTaskRunning bool
- logger.Debug("Start resend task. cache len:%d", len(cacheItems))
- if err := util.HttpGet(config.ForwardConf.SyncServer); err != nil {
- logger.Debug("The server cannot be reached. %s", err.Error())
+func ResendImageData() {
+ if resendTaskRunning {
+ return
+ }
+ resendTaskRunning = true
+ defer func() { resendTaskRunning = false }()
+
+ var cacheMod models.Cache
+ total, _ := cacheMod.Count()
+ if total == 0 {
return
}
- for _, c := range cacheItems {
- if c.Type == "1400" {
+ 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)
- continue
+ 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)
- continue
+ return
}
}
--
Gitblit v1.8.0