From 43876595ecbbf6c41fafc8293713347e8ed4014d Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 13 七月 2019 15:04:15 +0800 Subject: [PATCH] 定时器缓存数据分类插入 --- ruleserver/timeTicker.go | 71 +++++++++++++++-------------------- 1 files changed, 30 insertions(+), 41 deletions(-) diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go index 27b553c..7e2cecf 100644 --- a/ruleserver/timeTicker.go +++ b/ruleserver/timeTicker.go @@ -2,7 +2,7 @@ import ( "fmt" - "os" + "ruleprocess/logger" "time" ) @@ -13,13 +13,16 @@ // 瀹氭椂鍣ㄥ厓绱� type TimeElement struct { - N int // 鎸夋椂闂翠緷娆¢�掑噺鐨勫綋鍓嶅�� - InitN int // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊� - Data AreaMap // - GroupId string // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id - RuleResults []*RuleResult + N int // 鎸夋椂闂翠緷娆¢�掑噺鐨勫綋鍓嶅�� + InitN int // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊� + BufferFlag int // 缂撳啿瀹归敊浣� 杩炵画甯alse鎵嶄负false + AlarmFlag bool // 鎶ヨ鏍囧織浣� 瀹氭椂鍣ㄥ紑鍚悗绗竴娆℃姤璀︽椂浼氳缃负true 寰�鍚庡啀鏉ユ姤璀︿篃涓嶄細鎻掕繘ES + CacheSdkData *ResultMsg // 瀹氭椂鍣ㄧ殑缂撳瓨鏁版嵁 鎸佺画鏃堕棿绫荤殑寮�鍚畾鏃跺櫒鏃惰缂撳瓨涓�甯� + GroupId string // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id + RuleResults []*RuleResult } -type RuleResult struct { // 姣忎釜鎽勫儚鏈轰竴涓粨鏋勪綋 +type RuleResult struct { + // 姣忎釜鎽勫儚鏈轰竴涓粨鏋勪綋 CameraId string // 鎽勫儚鏈篿d Sort int32 // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿 Result string // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉 @@ -27,6 +30,7 @@ } func TimeTicker() { + logger.Info("瀹氭椂鍣ㄦ墽琛屼簡") fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡") ticker := time.NewTicker(1 * time.Second) go func(ticker *time.Ticker) { @@ -34,17 +38,24 @@ for { select { case <-ticker.C: - fmt.Println("瀹氭椂鍣ㄦ墽琛屽崟鍏�") + logger.Info("瀹氭椂鍣ㄦ墽琛屽崟鍏�", time.Now().Unix()) + fmt.Println("瀹氭椂鍣ㄦ墽琛屽崟鍏�", time.Now().Unix()) // 姣忕閽熻鏁板櫒姹犲瓙閲屾墍鏈夌殑璁℃暟鍣ㄥ厓绱犻兘鍑忎竴锛屽噺鍒�0鐨勬槸璇ユ姤璀︾殑 - for _, timeEle := range TimeEleList { + 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) } } case stop := <-stopChan: if stop { - fmt.Println("瀹氭椂鍣ㄧ粨鏉�") - os.Exit(0) + logger.Info("瀹氭椂鍣ㄧ粨鏉�") + return + //os.Exit(0) } } } @@ -55,38 +66,16 @@ TimeTicker() } -// 瀹氭椂鍣ㄥ崟鍏� 搴熷純鐗堟湰 -// func TimeTicker() chan bool { -// fmt.Println("鎵ц浜唗imeTicker") -// ticker := time.NewTicker(1 * time.Second) -// stopChan := make(chan bool) -// go func(ticker *time.Ticker) { -// defer ticker.Stop() -// for { -// select { -// case <-ticker.C: -// //fmt.Println("鎵ц鍗曞厓", "璁℃暟鍣ㄩ泦鍚�2", TimeEleList) -// for k, timeEle := range TimeEleList { -// timeEle.n = timeEle.n - 1 -// //fmt.Println("閬嶅巻鐨勬暟鍊�", TimeEleList) -// if timeEle.n == 0 { -// // do something alarm -// alarm(k, timeEle) -// } -// } -// case stop := <-stopChan: -// if stop { -// fmt.Println("瀹氭椂鍣ㄧ粨鏉�") -// return -// } -// } -// } -// }(ticker) -// return stopChan -// } - +// 缁撴瀯浣撴牴鎹煇瀛楁鎺掑簭 type SubList []*RuleResult func (p SubList) Swap(i, j int) { p[i], p[j] = p[j], p[i] } func (p SubList) Len() int { return len(p) } func (p SubList) Less(i, j int) bool { return p[i].Sort < p[j].Sort } + +// 缁撴瀯浣撴牴鎹煇瀛楁鎺掑簭 +type resultList []*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 } -- Gitblit v1.8.0