panlei
2019-11-16 90f568cf48fcc3131b45a2081dea40015eae5c5b
ruleserver/timeTicker.go
@@ -2,7 +2,7 @@
import (
   "fmt"
   "ruleprocess/logger"
   "basic.com/valib/logger.git"
   "ruleprocess/structure"
   "strings"
   "time"
@@ -42,11 +42,12 @@
         logger.Info("定时器执行单元", time.Now().Unix())
         fmt.Println("定时器执行单元", time.Now().Unix())
         // 每秒钟计数器池子里所有的计数器元素都减一,减到0的是该报警的
         // 图片定时器系列
         rw.Lock()
         for k, timeEle := range TimeEleList {
            if timeEle.N > 0 {
               timeEle.N = timeEle.N - 1
               logger.Error("-------------------------------------打印定时器计数元素当前值-----------------------------------------:", timeEle.N)
               logger.Debug("-------------------------------------打印定时器计数元素当前值-----------------------------------------:", timeEle.N)
            }
            if timeEle.GroupId != "" && timeEle.N == 0 {
               // 说明是联动任务的时间窗口 到点儿了该销毁了,再来了再创建
@@ -54,6 +55,14 @@
            }
         }
         rw.Unlock()
         // 目标定时器系列
         for _,cameraArea := range structure.StaticMap {
            for _,obj := range cameraArea.Targets {
               if obj.N > 0 {
                  obj.N = obj.N - 1
               }
            }
         }
      case stop := <-stopChan:
         if stop {
            logger.Info("定时器结束")
@@ -148,8 +157,8 @@
func (p SubList) Less(i, j int) bool { return p[i].Sort < p[j].Sort }
// 结构体根据某字段排序
type resultList []*structure.LittleRuleResult
type ResultList []*structure.LittleRuleResult
func (p resultList) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
func (p resultList) Len() int           { return len(p) }
func (p resultList) Less(i, j int) bool { return p[i].Sort < p[j].Sort }
func (p ResultList) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
func (p ResultList) Len() int           { return len(p) }
func (p ResultList) Less(i, j int) bool { return p[i].Sort < p[j].Sort }