From 993dc81c942d6b1315684cda034c8859a6f4d02b Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期三, 06 十一月 2019 11:15:40 +0800
Subject: [PATCH] ---

---
 ruleserver/timeTicker.go |   21 +++++++++++++--------
 1 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
index e6219ed..7650091 100644
--- a/ruleserver/timeTicker.go
+++ b/ruleserver/timeTicker.go
@@ -2,7 +2,8 @@
 
 import (
 	"fmt"
-	"ruleprocess/logger"
+	"basic.com/valib/logger.git"
+	"ruleprocess/structure"
 	"strings"
 	"time"
 )
@@ -18,7 +19,7 @@
 	InitN        int       // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊�
 	BufferFlag   int       // 缂撳啿瀹归敊浣� 杩炵画n甯alse鎵嶄负false
 	AlarmFlag    bool      // 鎶ヨ鏍囧織浣� 瀹氭椂鍣ㄥ紑鍚悗绗竴娆℃姤璀︽椂浼氳缃负true 寰�鍚庡啀鏉ユ姤璀︿篃涓嶄細鎻掕繘ES
-	CacheSdkData ResultMsg // 瀹氭椂鍣ㄧ殑缂撳瓨鏁版嵁 鎸佺画鏃堕棿绫荤殑寮�鍚畾鏃跺櫒鏃惰缂撳瓨涓�甯�
+	CacheSdkData structure.ResultMsg // 瀹氭椂鍣ㄧ殑缂撳瓨鏁版嵁 鎸佺画鏃堕棿绫荤殑寮�鍚畾鏃跺櫒鏃惰缂撳瓨涓�甯�
 	GroupId      string    // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id
 	RuleResults  []*RuleResult
 }
@@ -28,12 +29,10 @@
 	Sort        int32     // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿
 	Result      string    // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉
 	RuleWithPre string    // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗�
-	CacheData   ResultMsg // 缂撳瓨褰撳墠甯ф暟鎹�
+	CacheData   structure.ResultMsg // 缂撳瓨褰撳墠甯ф暟鎹�
 }
 
 func TimeTicker() {
-	logger.Info("瀹氭椂鍣ㄦ墽琛屼簡")
-	fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡")
 	ticker := time.NewTicker(1 * time.Second)
 	go func(ticker *time.Ticker) {
 		defer ticker.Stop()
@@ -43,6 +42,7 @@
 				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
@@ -53,6 +53,7 @@
 						delete(TimeEleList, k)
 					}
 				}
+				rw.Unlock()
 			case stop := <-stopChan:
 				if stop {
 					logger.Info("瀹氭椂鍣ㄧ粨鏉�")
@@ -69,10 +70,11 @@
 }
 
 // 鍒ゆ柇鏄惁绗﹀悎瀹氭椂鍣ㄦ潯浠�
-func TimerAlarm(oth *Others, groupId string, result bool) (string) {
+func TimerAlarm(oth *structure.Others, groupId string, result bool) (string) {
 	var flagTime string //
 	// 鍒ゆ柇鏈夋棤姝よ鍒欑粍鐨勫畾鏃跺櫒
 	flag := false
+	rw.Lock()
 	for k, _ := range TimeEleList {
 		//logger.Debug("-----------------鐪嬬湅杩欎釜key鍜実roupId", k, groupId)
 		if strings.Contains(k, groupId) && k != groupId{
@@ -92,7 +94,7 @@
 						logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------棣栨绗﹀悎鎸佺画鏃堕棿瑙勫垯骞舵姤璀�")
 						flagTime = "10"
 						timeEle.AlarmFlag = true
-						oth.CacheData = []ResultMsg{}
+						oth.CacheData = []structure.ResultMsg{}
 						oth.CacheData = append(oth.CacheData,timeEle.CacheSdkData)
 						oth.TimeLabel = flagTime
 					}
@@ -115,10 +117,12 @@
 							delete(TimeEleList, k)
 						} else {
 							if timeEle.BufferFlag > 0 {
+								logger.Debug("缂撳啿鍖哄噺鍑�")
 								timeEle.BufferFlag--
 							}
 						}
 					} else {
+						logger.Debug("-----------缁撴灉涓哄亣涓斾笉鍒�0锛屾潃姝诲畾鏃跺櫒")
 						delete(TimeEleList, k)
 					}
 				}
@@ -132,6 +136,7 @@
 			flagTime = "00"
 		}
 	}
+	rw.Unlock()
 	return flagTime
 }
 
@@ -143,7 +148,7 @@
 func (p SubList) Less(i, j int) bool { return p[i].Sort < p[j].Sort }
 
 // 缁撴瀯浣撴牴鎹煇瀛楁鎺掑簭
-type resultList []*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) }

--
Gitblit v1.8.0