From 40e90ca2c934c8505f2a9e9b1c4f076657008369 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期五, 05 七月 2019 10:34:00 +0800 Subject: [PATCH] 添加日志系统 --- ruleserver/timeTicker.go | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 102 insertions(+), 0 deletions(-) diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go new file mode 100644 index 0000000..84f1129 --- /dev/null +++ b/ruleserver/timeTicker.go @@ -0,0 +1,102 @@ +package ruleserver + +import ( + "fmt" + "ruleprocess/logger" + "time" +) + +var stopChan = make(chan bool) + +// 璁℃暟鍣╩ap 鐙珛浠诲姟鐨勯敭鏄换鍔d鎷兼帴鍖哄煙id 鑱斿姩浠诲姟鐨勯敭鏄痝roupid锛堣兘涓嶈兘閮界敤groupId?锛� +var TimeEleList = make(map[string]*TimeElement) + +// 瀹氭椂鍣ㄥ厓绱� +type TimeElement struct { + N int // 鎸夋椂闂翠緷娆¢�掑噺鐨勫綋鍓嶅�� + InitN int // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊� + Data AreaMap // + GroupId string // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id + RuleResults []*RuleResult +} +type RuleResult struct { // 姣忎釜鎽勫儚鏈轰竴涓粨鏋勪綋 + CameraId string // 鎽勫儚鏈篿d + Sort int32 // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿 + Result string // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉 + RuleWithPre string // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗� +} + +func TimeTicker() { + fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡") + ticker := time.NewTicker(1 * time.Second) + go func(ticker *time.Ticker) { + defer ticker.Stop() + for { + select { + case <-ticker.C: + fmt.Println("瀹氭椂鍣ㄦ墽琛屽崟鍏�") + // 姣忕閽熻鏁板櫒姹犲瓙閲屾墍鏈夌殑璁℃暟鍣ㄥ厓绱犻兘鍑忎竴锛屽噺鍒�0鐨勬槸璇ユ姤璀︾殑 + for _, timeEle := range TimeEleList { + if timeEle.N > 0 { + timeEle.N = timeEle.N - 1 + logger.Info("-------------------------------------鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅��-----------------------------------------锛�",timeEle.N) + } + } + case stop := <-stopChan: + if stop { + fmt.Println("瀹氭椂鍣ㄧ粨鏉�") + //os.Exit(0) + } + } + } + }(ticker) +} +func StopTimeTicker() { + stopChan <- true + 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