From e4840c7de5ff5f1a816a4fd023ba5bf797a4fa9e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 16 四月 2024 14:03:33 +0800
Subject: [PATCH] 添加失败缓存重发的功能

---
 service/report.go |   56 ++++++--------------------------------------------------
 1 files changed, 6 insertions(+), 50 deletions(-)

diff --git a/service/report.go b/service/report.go
index f352d55..02182c9 100644
--- a/service/report.go
+++ b/service/report.go
@@ -11,6 +11,7 @@
 	"gat1400Exchange/config"
 	"gat1400Exchange/pkg/logger"
 	"gat1400Exchange/models"
+	"gat1400Exchange/util"
 
 	"github.com/hashicorp/golang-lru/v2/expirable"
 )
@@ -39,9 +40,11 @@
 	IpAddr      string                 `json:"ip"`
 }
 
-func reportDeviceInfo() error {
+func DeviceInfoReportTask() error {
+	logger.Info("Start device info report task, server:%s.", config.ForwardConf.ReportServer)
+
 	if config.ForwardConf.ReportServer == "" {
-		return errors.New("server addr is empty !")
+		return errors.New("Server addr is empty!")
 	}
 
 	var d models.Device
@@ -71,7 +74,7 @@
 
 		logger.Info("Report device info. %+v", dev)
 
-		_, err = HttpPost(config.ForwardConf.ReportServer, nil, data)
+		_, err = util.HttpPost(config.ForwardConf.ReportServer, nil, data)
 		if err != nil {
 			return err
 		}
@@ -82,51 +85,4 @@
 
 func KeepDeviceAlive(id string) {
 	deviceAliveCache.Add(id, true)
-}
-
-func DeviceInfoReportTask() {
-	interval := config.ForwardConf.ReportInterval
-	if interval == 0 {
-		interval = 10
-	}
-
-	logger.Info("start device info report task, server:%s interval:%d.", config.ForwardConf.ReportServer, interval)
-
-	ticker := time.NewTicker(1 * time.Second)
-	for {
-		select {
-		case <-ticker.C:
-			err := reportDeviceInfo()
-			if err != nil {
-				logger.Warn(err.Error())
-			}
-
-			ticker.Reset(time.Duration(interval) * time.Second)
-		}
-	}
-}
-
-
-func HttpPost(url string, header map[string]string, data []byte) ([]byte, error) {
-	req, err := http.NewRequest(http.MethodPost, url, bytes.NewBuffer(data))
-	if err != nil {
-		return nil, err
-	}
-	req.Header.Set("Content-Type", "applicaiton/json; charset=UTF-8")
-	if header != nil {
-		for k, v := range header {
-			req.Header.Set(k, v)
-		}
-	}
-	cli := &http.Client{}
-	resp, err := cli.Do(req)
-	if err != nil {
-		return nil, err
-	}
-	defer resp.Body.Close()
-	body, err := io.ReadAll(resp.Body)
-	if err != nil {
-		return nil, err
-	}
-	return body, nil
 }

--
Gitblit v1.8.0