From 9ac06d86026340a0dfe0348068d7659b04abfe7e Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期二, 02 七月 2019 19:20:07 +0800
Subject: [PATCH] 去掉faces的终止程序

---
 ruleserver/timeTicker.go |  103 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 103 insertions(+), 0 deletions(-)

diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
new file mode 100644
index 0000000..644a6a5
--- /dev/null
+++ b/ruleserver/timeTicker.go
@@ -0,0 +1,103 @@
+package ruleserver
+
+import (
+	"fmt"
+	"log"
+	"os"
+	"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
+						log.Println("-------------------------------------鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅��-----------------------------------------锛�",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