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