From ca9e545d6fcc86e751e768f57d823704e9ad1340 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 16 四月 2024 16:07:50 +0800
Subject: [PATCH] 修复更新重试次数

---
 config/config.go  |    5 +++++
 models/cache.go   |    2 +-
 service/resend.go |    2 +-
 cron/cron.go      |    2 +-
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/config/config.go b/config/config.go
index 87dbe60..0aa97b4 100644
--- a/config/config.go
+++ b/config/config.go
@@ -27,6 +27,7 @@
 	SyncServer     string `mapstructure:"sync-server"`
 	ReportServer   string `mapstructure:"report-server"`
 	ReportInterval int    `mapstructure:"report-interval"`
+	RetryInterval  int    `mapstructure:"retry-interval"`
 }
 
 type rateLimitConfig struct {
@@ -73,5 +74,9 @@
 		ForwardConf.ReportInterval = 10
 	}
 
+	if ForwardConf.RetryInterval == 0 {
+		ForwardConf.RetryInterval = 5
+	}
+
 	logger.SetLogLevel(LogConf.Level)
 }
diff --git a/cron/cron.go b/cron/cron.go
index 89ad59f..9c7f4b9 100644
--- a/cron/cron.go
+++ b/cron/cron.go
@@ -14,7 +14,7 @@
 }
 
 func Init() {
-	s.Every(10).Minutes().StartImmediately().Do(service.ResendImageData)
+	s.Every(config.ForwardConf.RetryInterval).Minutes().StartImmediately().Do(service.ResendImageData)
 	s.Every(config.ForwardConf.ReportInterval).Second().StartImmediately().Do(service.DeviceInfoReportTask)
 
 	s.StartAsync()
diff --git a/models/cache.go b/models/cache.go
index c8bf18d..54becc2 100644
--- a/models/cache.go
+++ b/models/cache.go
@@ -25,7 +25,7 @@
 }
 
 func (c *Cache) UpdateRetryCount() error {
-	return db.Table(c.TableName()).Update("retry", c.Retry+1).Where("id = ?", c.Id).Error
+	return db.Table(c.TableName()).Where("id = ?", c.Id).Update("retry", c.Retry+1).Error
 }
 
 func (c *Cache) Delete() error {
diff --git a/service/resend.go b/service/resend.go
index fcf4be7..ca9e837 100644
--- a/service/resend.go
+++ b/service/resend.go
@@ -13,8 +13,8 @@
 
 	for _, c := range cacheItems {
 		if !util.SendData([]byte(c.Data), config.ForwardConf.SyncServer) {
-			logger.Warn("The data resend failed. retry count %d", c.Retry)
 			c.UpdateRetryCount()
+			logger.Warn("The data resend failed. retry count %d", c.Retry+1)
 		} else {
 			c.Delete()
 			logger.Debug("The data resend successful.")

--
Gitblit v1.8.0