zhangzengfei
2024-05-22 f946512f64f1e2e9aa887f62f04f8ebedb53d810
service/subscribe.go
@@ -3,6 +3,7 @@
import (
   "context"
   "encoding/json"
   "gat1400Exchange/config"
   "strings"
   "sync"
   "time"
@@ -52,12 +53,12 @@
   }
}
func InitSubscribeTask() error {
func InitSubscribeTask() {
   var s models.Subscribe
   subList, err := s.FindAll()
   subList, err := s.FindByFromId(config.ClientConf.ServerId)
   if err != nil {
      logger.Error("Find account by channel error:%v", err)
      return err
      logger.Error("Find subscribe error, server id %s, %v", config.ClientConf.ServerId, err)
      return
   }
   for idx, _ := range subList {
@@ -68,17 +69,16 @@
      CreateTask(&subList[idx])
   }
   return nil
   return
}
func AddFaceCapture(face *vo.FaceObject) {
func AddFaceNotification(face *vo.FaceObject) {
   TaskProcMap.Range(func(key, value interface{}) bool {
      value.(TaskProcInfo).task.AddFace(face)
      return true
   })
   logger.Debug("添加人脸.")
   //TaskWaitGroup.Wait()
   logger.Debug("Add Face Notification.")
}
func StopSubscribeTask() {
@@ -109,10 +109,11 @@
}
type SubscribeTask struct {
   ctx      context.Context
   conf     *models.Subscribe
   faceList []*vo.FaceObject
   mutex    sync.Mutex
   ctx          context.Context
   conf         *models.Subscribe
   faceList     []*vo.FaceObject
   mutex        sync.Mutex
   lastExecTime int64
}
func (task *SubscribeTask) Start() {
@@ -148,8 +149,8 @@
   for _, subType := range subDetails {
      triggerTime := time.Now().Format("20060102150405")
      // 上报设备
      if subType == vo.SubscribeApe {
      // 上报设备 控制设备通知控制频率, 避免频繁, 上级一般会下发秒级的任务, 但设备不会频繁更新,
      if subType == vo.SubscribeApe && time.Now().Unix()-task.lastExecTime > 60*10 {
         var notification = vo.DeviceNotification{
            NotificationID:   triggerTime + snowflake.GenerateIdStr(),
            SubscribeID:      task.conf.Id,
@@ -218,4 +219,6 @@
         client.Notify(task.conf.Ext.ReceiveAddr, b)
      }
   }
   task.lastExecTime = time.Now().Unix()
}