panlei
2019-08-09 ed50fd820fa8299f328e85400a08db997e86b349
加个取联动数据的判断以防偶尔的nil导致宕机
1个文件已修改
28 ■■■■ 已修改文件
ruleserver/ruleToformula.go 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruleserver/ruleToformula.go
@@ -491,20 +491,22 @@
                result, _ := expression.Evaluate(nil) // 得到数学公式的结果
                if result.(bool) {
                    logger.Info("___________________________________________________________________联动任务报警")
                    // 把数组里缓存的数据取出来一起报警
                    label.LinkCache = []ResultMsg{}
                    for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults {
                        label.LinkCache = append(label.LinkCache, ruleRes.CacheData)
                    }
                    logger.Debug("联动任务缓存了几个数据", len(label.LinkCache))
                    for i := 0; i < len(args.RuleResult["yolo"].([]Result)); i++ {
                        if args.RuleResult["yolo"].([]Result)[i].RuleGroupId == groupRule.GroupId { // 把联动数据追加上
                            args.RuleResult["yolo"].([]Result)[i].Others.LinkCache = label.LinkCache
                    if TimeEleList[groupRule.GroupId] != nil {  // 极偶尔有情况会等于nil,不知道为啥,做个判断以防宕机
                        // 把数组里缓存的数据取出来一起报警
                        label.LinkCache = []ResultMsg{}
                        for _, ruleRes := range TimeEleList[groupRule.GroupId].RuleResults {
                            label.LinkCache = append(label.LinkCache, ruleRes.CacheData)
                        }
                    }
                    for i := 0; i < len(args.RuleResult["face"].([]FaceResult)); i++ {
                        if args.RuleResult["face"].([]FaceResult)[i].RuleGroupId == groupRule.GroupId { // 把联动数据追加上
                            args.RuleResult["face"].([]FaceResult)[i].Others.LinkCache = label.LinkCache
                        logger.Debug("联动任务缓存了几个数据", len(label.LinkCache))
                        for i := 0; i < len(args.RuleResult["yolo"].([]Result)); i++ {
                            if args.RuleResult["yolo"].([]Result)[i].RuleGroupId == groupRule.GroupId { // 把联动数据追加上
                                args.RuleResult["yolo"].([]Result)[i].Others.LinkCache = label.LinkCache
                            }
                        }
                        for i := 0; i < len(args.RuleResult["face"].([]FaceResult)); i++ {
                            if args.RuleResult["face"].([]FaceResult)[i].RuleGroupId == groupRule.GroupId { // 把联动数据追加上
                                args.RuleResult["face"].([]FaceResult)[i].Others.LinkCache = label.LinkCache
                            }
                        }
                    }
                }