From dd753957ef55cbb17dce17771fb17469f90088e6 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期六, 13 七月 2019 17:46:01 +0800
Subject: [PATCH] 定时器缓冲容错

---
 ruleserver/ruleToformula.go |   16 +++++++++++-----
 ruleserver/timeTicker.go    |    2 +-
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/ruleserver/ruleToformula.go b/ruleserver/ruleToformula.go
index 646f65a..8d56592 100644
--- a/ruleserver/ruleToformula.go
+++ b/ruleserver/ruleToformula.go
@@ -546,10 +546,16 @@
 			for k, timeEle := range TimeEleList {
 				if strings.Contains(k, groupId) {
 					if timeEle.AlarmFlag {
-						logger.Debug("------------------------------鏉�姝诲畾鏃跺櫒锛屾姤璀︽甯х姸鎬佹敼鍙樼殑鏁版嵁锛屾鏃剁殑璁℃暟鍣ㄧ殑鍊间负",timeEle.N)
-						flagTime = "12"
-						args.RuleResult["timeLabel"] = flagTime
-						delete(TimeEleList,k)
+						if timeEle.BufferFlag == 0 {
+							logger.Debug("------------------------------鏉�姝诲畾鏃跺櫒锛屾姤璀︽甯х姸鎬佹敼鍙樼殑鏁版嵁锛屾鏃剁殑璁℃暟鍣ㄧ殑鍊间负",timeEle.N)
+							flagTime = "12"
+							args.RuleResult["timeLabel"] = flagTime
+							delete(TimeEleList,k)
+						} else {
+							if timeEle.BufferFlag > 0 {
+								timeEle.BufferFlag--
+							}
+						}
 					} else {
 						delete(TimeEleList,k)
 					}
@@ -885,7 +891,7 @@
 
 			if flag {
 				timeLength, _ := strconv.Atoi(rule.SdkArgValue)
-				timeEle := TimeElement{N: timeLength, InitN: timeLength, AlarmFlag: false, CacheSdkData: ResultMsg{message,args.RuleResult}} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌锛堝苟缂撳瓨褰撳墠鐢婚潰甯ф暟鎹級
+				timeEle := TimeElement{N: timeLength, InitN: timeLength, AlarmFlag: false,BufferFlag:6, CacheSdkData: ResultMsg{message,args.RuleResult}} // 鎵旇繘鍘讳竴涓畾鏃跺櫒鍏冪礌锛堝苟缂撳瓨褰撳墠鐢婚潰甯ф暟鎹級
 				//TimeEleList = make(map[string]timeElement)
 				TimeEleList[groupId+" "+rule.Id] = &timeEle // 瀹氭椂鍣ㄥ厓绱犱互鎽勫儚鏈篿d鎷兼帴鍖哄煙id涓洪敭
 				logger.Info("鍒涘缓浜嗚鏁板櫒骞朵笖璁℃暟鍣ㄩ泦鍚堜负锛�", TimeEleList)
diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go
index c119195..6b95c31 100644
--- a/ruleserver/timeTicker.go
+++ b/ruleserver/timeTicker.go
@@ -15,7 +15,7 @@
 type TimeElement struct {
 	N            int                  // 鎸夋椂闂翠緷娆¢�掑噺鐨勫綋鍓嶅��
 	InitN        int                  // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊�
-	BufferFlag   int                  // 缂撳啿瀹归敊浣� 杩炵画甯alse鎵嶄负false
+	BufferFlag   int                  // 缂撳啿瀹归敊浣� 杩炵画n甯alse鎵嶄负false
 	AlarmFlag    bool                 // 鎶ヨ鏍囧織浣� 瀹氭椂鍣ㄥ紑鍚悗绗竴娆℃姤璀︽椂浼氳缃负true 寰�鍚庡啀鏉ユ姤璀︿篃涓嶄細鎻掕繘ES
 	CacheSdkData ResultMsg // 瀹氭椂鍣ㄧ殑缂撳瓨鏁版嵁 鎸佺画鏃堕棿绫荤殑寮�鍚畾鏃跺櫒鏃惰缂撳瓨涓�甯�
 	GroupId      string               // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id

--
Gitblit v1.8.0