From a6e84625b91e19220933ed3bc8ef91435281ab26 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 16 四月 2024 16:52:35 +0800
Subject: [PATCH] 添加服务器是否可以连接的判断
---
service/resend.go | 5 ++
util/http.go | 9 ++++
repository/captureRepo.go | 73 +++++++++++++++++++-----------------
3 files changed, 52 insertions(+), 35 deletions(-)
diff --git a/repository/captureRepo.go b/repository/captureRepo.go
index d1086d8..adf71d7 100644
--- a/repository/captureRepo.go
+++ b/repository/captureRepo.go
@@ -71,41 +71,6 @@
return
}
-func (c CaptureRepository) PackPushDataV2(deviceId, faceId, faceImage, appearTime string) *vo.PushDataInfoV2 {
- var pd = new(vo.PushDataInfoV2)
- var device models.Device
-
- if err := device.FindById(deviceId); err != nil {
- logger.Warn("Can't find device in database, device:%s, %s", deviceId, err.Error())
- return pd
- }
-
- // 鍖归厤妤煎眰
- faceAppearTime, err := time.ParseInLocation("20060102150405", appearTime, time.Local)
- if err != nil {
- logger.Warn("Parse face appear time error, %s", err.Error())
- faceAppearTime = time.Now()
- }
-
- var devPos models.Positions
- _ = devPos.FindDevicePosition(deviceId, faceAppearTime.Unix()+5) // 鍔�5绉掔數姊叧闂ㄧ殑鏃堕棿
-
- imageBytes, err := base64.StdEncoding.DecodeString(faceImage)
- if err != nil {
- logger.Warn("Decode Image Base64 String failure, %s", err.Error())
- return pd
- }
-
- pd.PicMaxImages = append(pd.PicMaxImages, imageBytes)
- pd.PicId = faceId
- pd.PicDate = faceAppearTime.Format("2006-01-02 15:04:05")
- pd.DataSource = "camera"
- pd.CameraFloor = devPos.Pos
- pd.CameraId = deviceId
-
- return pd
-}
-
func (c CaptureRepository) PackPushData(deviceId, faceId, faceImage, appearTime string) *vo.PushDataInfo {
var pd = new(vo.PushDataInfo)
var device models.Device
@@ -160,6 +125,44 @@
return pd
}
+func (c CaptureRepository) PackPushDataV2(deviceId, faceId, faceImage, appearTime string) *vo.PushDataInfoV2 {
+ var pd = new(vo.PushDataInfoV2)
+ var device models.Device
+
+ if err := device.FindById(deviceId); err != nil {
+ logger.Warn("Can't find device in database, device:%s, %s", deviceId, err.Error())
+ return pd
+ }
+
+ // 鍖归厤妤煎眰
+ faceAppearTime, err := time.ParseInLocation("20060102150405", appearTime, time.Local)
+ if err != nil {
+ logger.Warn("Parse face appear time error, %s", err.Error())
+ faceAppearTime = time.Now()
+ }
+
+ var devPos models.Positions
+ _ = devPos.FindDevicePosition(deviceId, faceAppearTime.Unix()+5) // 鍔�5绉掔數姊叧闂ㄧ殑鏃堕棿
+ if devPos.Pos == "" {
+ devPos.Pos = device.Pos
+ }
+
+ imageBytes, err := base64.StdEncoding.DecodeString(faceImage)
+ if err != nil {
+ logger.Warn("Decode Image Base64 String failure, %s", err.Error())
+ return pd
+ }
+
+ pd.PicMaxImages = append(pd.PicMaxImages, imageBytes)
+ pd.PicId = faceId
+ pd.PicDate = faceAppearTime.Format("2006-01-02 15:04:05")
+ pd.DataSource = "camera"
+ pd.CameraFloor = devPos.Pos
+ pd.CameraId = deviceId
+
+ return pd
+}
+
func (c CaptureRepository) CacheData(payload []byte) {
var cacheItem = models.Cache{
Data: string(payload),
diff --git a/service/resend.go b/service/resend.go
index c803c0d..7cac1a9 100644
--- a/service/resend.go
+++ b/service/resend.go
@@ -12,6 +12,11 @@
cacheItems, _ := cacheMod.FindAll()
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())
+ return
+ }
+
for _, c := range cacheItems {
if !util.SendData([]byte(c.Data), config.ForwardConf.SyncServer) {
c.UpdateRetryCount()
diff --git a/util/http.go b/util/http.go
index 25be75e..5fce218 100644
--- a/util/http.go
+++ b/util/http.go
@@ -54,3 +54,12 @@
return body, nil
}
+
+func HttpGet(url string) error {
+ _, err := http.Get(url)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
--
Gitblit v1.8.0