From ed50fd820fa8299f328e85400a08db997e86b349 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期五, 09 八月 2019 18:04:54 +0800 Subject: [PATCH] 加个取联动数据的判断以防偶尔的nil导致宕机 --- ruleserver/timeTicker.go | 65 ++++++++++++++++---------------- 1 files changed, 33 insertions(+), 32 deletions(-) diff --git a/ruleserver/timeTicker.go b/ruleserver/timeTicker.go index 0809fb4..2449663 100644 --- a/ruleserver/timeTicker.go +++ b/ruleserver/timeTicker.go @@ -14,25 +14,26 @@ // 瀹氭椂鍣ㄥ厓绱� type TimeElement struct { - N int // 鎸夋椂闂翠緷娆¢�掑噺鐨勫綋鍓嶅�� - InitN int // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊� - BufferFlag int // 缂撳啿瀹归敊浣� 杩炵画n甯alse鎵嶄负false - AlarmFlag bool // 鎶ヨ鏍囧織浣� 瀹氭椂鍣ㄥ紑鍚悗绗竴娆℃姤璀︽椂浼氳缃负true 寰�鍚庡啀鏉ユ姤璀︿篃涓嶄細鎻掕繘ES + N int // 鎸夋椂闂翠緷娆¢�掑噺鐨勫綋鍓嶅�� + InitN int // 璧嬪�煎悗灏变笉鍙樼殑鍒濆鍊� + BufferFlag int // 缂撳啿瀹归敊浣� 杩炵画n甯alse鎵嶄负false + AlarmFlag bool // 鎶ヨ鏍囧織浣� 瀹氭椂鍣ㄥ紑鍚悗绗竴娆℃姤璀︽椂浼氳缃负true 寰�鍚庡啀鏉ユ姤璀︿篃涓嶄細鎻掕繘ES CacheSdkData ResultMsg // 瀹氭椂鍣ㄧ殑缂撳瓨鏁版嵁 鎸佺画鏃堕棿绫荤殑寮�鍚畾鏃跺櫒鏃惰缂撳瓨涓�甯� - GroupId string // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id + GroupId string // 鑱斿姩瑙勫垯闇�瑕佽褰曚笅姝ゆ椂鐨勮鍒欑粍id RuleResults []*RuleResult } type RuleResult struct { // 姣忎釜鎽勫儚鏈轰竴涓粨鏋勪綋 - CameraId string // 鎽勫儚鏈篿d - Sort int32 // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿 - Result string // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉 - RuleWithPre string // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗� + CameraId string // 鎽勫儚鏈篿d + Sort int32 // 鎽勫儚鏈哄湪瑙勫垯缁勪腑搴忓彿 + Result string // 鎽勫儚鏈鸿繃婊ゆ暟鎹緱鍑虹殑缁撴灉 + RuleWithPre string // 鎽勫儚鏈轰箣闂寸殑杩炴帴绗� + CacheData ResultMsg // 缂撳瓨褰撳墠甯ф暟鎹� } func TimeTicker() { - logger.Info("瀹氭椂鍣ㄦ墽琛屼簡") - fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡") + //logger.Info("瀹氭椂鍣ㄦ墽琛屼簡") + //fmt.Println("瀹氭椂鍣ㄦ墽琛屼簡") ticker := time.NewTicker(1 * time.Second) go func(ticker *time.Ticker) { defer ticker.Stop() @@ -45,7 +46,7 @@ for k, timeEle := range TimeEleList { if timeEle.N > 0 { timeEle.N = timeEle.N - 1 - logger.Error("-------------------------------------鎵撳嵃瀹氭椂鍣ㄥ厓绱犲綋鍓嶅��-----------------------------------------锛�", timeEle.N) + logger.Error("-------------------------------------鎵撳嵃瀹氭椂鍣ㄨ鏁板厓绱犲綋鍓嶅��-----------------------------------------锛�", timeEle.N) } if timeEle.GroupId != "" && timeEle.N == 0 { // 璇存槑鏄仈鍔ㄤ换鍔$殑鏃堕棿绐楀彛 鍒扮偣鍎夸簡璇ラ攢姣佷簡,鍐嶆潵浜嗗啀鍒涘缓 @@ -67,73 +68,73 @@ TimeTicker() } - // 鍒ゆ柇鏄惁绗﹀悎瀹氭椂鍣ㄦ潯浠� -func TimerAlarm(args *SdkDatas,groupId string,result bool) (string) { - var flagTime string // +func TimerAlarm(oth *Others, groupId string, result bool) (string) { + var flagTime string // // 鍒ゆ柇鏈夋棤姝よ鍒欑粍鐨勫畾鏃跺櫒 flag := false - for k,_ := range TimeEleList { - logger.Debug("-----------------鐪嬬湅杩欎釜key鍜実roupId",k,groupId) - if strings.Contains(k, groupId) { + for k, _ := range TimeEleList { + //logger.Debug("-----------------鐪嬬湅杩欎釜key鍜実roupId", k, groupId) + if strings.Contains(k, groupId) && k != groupId{ flag = true } } - if flag { // 鏈夊畾鏃跺櫒 + if flag { // 鏈夊畾鏃跺櫒 if result { // 缁撴灉涓虹湡 for k, timeEle := range TimeEleList { - if strings.Contains(k, groupId) { + if strings.Contains(k, groupId) && k != groupId{ if timeEle.N == 0 && timeEle.AlarmFlag { logger.Debug("-------------------------绗﹀悎鎸佺画鏃堕棿瑙勫垯浣嗗苟涓嶆槸棣栨锛屼笉鎶ヨ") flagTime = "11" - args.RuleResult["timeLabel"] = flagTime + oth.TimeLabel = flagTime } if timeEle.N == 0 && !timeEle.AlarmFlag { // 杩欑粍瑙勫垯鐨勫畾鏃跺櫒瑕佸叏閮ㄧ瓑浜�0 鏆備笖璁や负涓�缁勮鍒欏彧鏈変竴涓畾鏃跺櫒 logger.Debug("鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��-------------棣栨绗﹀悎鎸佺画鏃堕棿瑙勫垯骞舵姤璀�") flagTime = "10" timeEle.AlarmFlag = true - args.RuleResult["cacheData"] = timeEle.CacheSdkData - args.RuleResult["timeLabel"] = flagTime + oth.CacheData = []ResultMsg{} + oth.CacheData = append(oth.CacheData,timeEle.CacheSdkData) + oth.TimeLabel = flagTime } if timeEle.N != 0 { flagTime = "00" // 鏈夊畾鏃跺櫒浣嗕笉涓�0鎶婂凡鎵撶殑鏍囩鍒犻櫎 - args.RuleResult = nil - logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒鐨勫�间负锛�",timeEle.N) + // args.RuleResult = nil + logger.Debug("------------------------缁撴灉涓虹湡浣嗚鏁板櫒涓嶅埌0锛屼笉鎶ヨ,姝ゆ椂鐨勮鏁板櫒", k, "鐨勫�间负锛�", timeEle.N) } } } } else { // 缁撴灉涓哄亣 for k, timeEle := range TimeEleList { - if strings.Contains(k, groupId) { + if strings.Contains(k, groupId) && k != groupId{ if timeEle.AlarmFlag { if timeEle.BufferFlag == 0 { - logger.Debug("------------------------------鏉�姝诲畾鏃跺櫒锛屾姤璀︽甯х姸鎬佹敼鍙樼殑鏁版嵁锛屾鏃剁殑璁℃暟鍣ㄧ殑鍊间负",timeEle.N) + logger.Debug("------------------------------鏉�姝诲畾鏃跺櫒锛屾姤璀︽甯х姸鎬佹敼鍙樼殑鏁版嵁锛屾鏃剁殑璁℃暟鍣ㄧ殑鍊间负", timeEle.N) flagTime = "12" - args.RuleResult["timeLabel"] = flagTime - delete(TimeEleList,k) + oth.TimeLabel = flagTime + delete(TimeEleList, k) } else { if timeEle.BufferFlag > 0 { timeEle.BufferFlag-- } } } else { - delete(TimeEleList,k) + delete(TimeEleList, k) } } } - } } else { // 鏃犲畾鏃跺櫒 if result { flagTime = "01" - args.RuleResult["timeLabel"] = flagTime + oth.TimeLabel = flagTime } else { flagTime = "00" } } return flagTime } + // 缁撴瀯浣撴牴鎹煇瀛楁鎺掑簭 type SubList []*RuleResult -- Gitblit v1.8.0