From 345c30b0136fe9c7be963f98a9e52719d1bffb60 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 05 十二月 2019 17:37:55 +0800 Subject: [PATCH] --- --- ruleserver/timeTicker.go | 74 +++++++++++++++++++++--------------- 1 files changed, 43 insertions(+), 31 deletions(-) diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go index abe6c4d..030e31c 100644 --- a/ruleserver/timeTicker.go +++ b/ruleserver/timeTicker.go @@ -1,8 +1,7 @@ package ruleserver import ( - "fmt" - "ruleprocess/logger" + logger "github.com/alecthomas/log4go" "ruleprocess/structure" "strings" "time" @@ -33,36 +32,45 @@ } func TimeTicker() { - //logger.Info("瀹氭椂鍣ㄦ墽琛屼簡") - //fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡") ticker := time.NewTicker(1 * time.Second) - go func(ticker *time.Ticker) { - defer ticker.Stop() - for { - select { - case <-ticker.C: - logger.Info("瀹氭椂鍣ㄦ墽琛屽崟鍏�", time.Now().Unix()) - fmt.Println("瀹氭椂鍣ㄦ墽琛屽崟鍏�", time.Now().Unix()) - // 姣忕閽熻鏁板櫒姹犲瓙閲屾墍鏈夌殑璁℃暟鍣ㄥ厓绱犻兘鍑忎竴锛屽噺鍒�0鐨勬槸璇ユ姤璀︾殑 - for k, timeEle := range TimeEleList { - if timeEle.N > 0 { - timeEle.N = timeEle.N - 1 - logger.Error("-------------------------------------鎵撳嵃瀹氭椂鍣ㄨ鏁板厓绱犲綋鍓嶅��-----------------------------------------锛�", timeEle.N) - } - if timeEle.GroupId != "" && timeEle.N == 0 { - // 璇存槑鏄仈鍔ㄤ换鍔$殑鏃堕棿绐楀彛 鍒扮偣鍎夸簡璇ラ攢姣佷簡,鍐嶆潵浜嗗啀鍒涘缓 - delete(TimeEleList, k) - } + //go func(ticker *time.Ticker) { + defer ticker.Stop() + for { + select { + case <-ticker.C: + //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.Debug("-------------------------------------鎵撳嵃瀹氭椂鍣ㄨ鏁板厓绱犲綋鍓嶅��-----------------------------------------锛�", timeEle.N) } - case stop := <-stopChan: - if stop { - logger.Info("瀹氭椂鍣ㄧ粨鏉�") - return - //os.Exit(0) + if timeEle.GroupId != "" && timeEle.N == 0 { + // 璇存槑鏄仈鍔ㄤ换鍔$殑鏃堕棿绐楀彛 鍒扮偣鍎夸簡璇ラ攢姣佷簡,鍐嶆潵浜嗗啀鍒涘缓 + delete(TimeEleList, k) } } + 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("瀹氭椂鍣ㄧ粨鏉�") + return + //os.Exit(0) + } } - }(ticker) + } + //}(ticker) } func StopTimeTicker() { stopChan <- true @@ -74,6 +82,7 @@ var flagTime string // // 鍒ゆ柇鏈夋棤姝よ鍒欑粍鐨勫畾鏃跺櫒 flag := false + rw.Lock() for k, _ := range TimeEleList { //logger.Debug("-----------------鐪嬬湅杩欎釜key鍜実roupId", k, groupId) if strings.Contains(k, groupId) && k != groupId{ @@ -116,10 +125,12 @@ delete(TimeEleList, k) } else { if timeEle.BufferFlag > 0 { + logger.Debug("缂撳啿鍖哄噺鍑�") timeEle.BufferFlag-- } } } else { + logger.Debug("-----------缁撴灉涓哄亣涓斾笉鍒�0锛屾潃姝诲畾鏃跺櫒") delete(TimeEleList, k) } } @@ -133,6 +144,7 @@ flagTime = "00" } } + rw.Unlock() return flagTime } @@ -144,8 +156,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 } -- Gitblit v1.8.0