优化
This commit is contained in:
		
							parent
							
								
									cf77900bc4
								
							
						
					
					
						commit
						39ae332a5b
					
				@ -121,41 +121,41 @@ func main() {
 | 
				
			|||||||
		model.GlobConfig.Comm.Kafka.ReportTopicName,
 | 
							model.GlobConfig.Comm.Kafka.ReportTopicName,
 | 
				
			||||||
		model.GlobConfig.Comm.Kafka.RealTimeDataGroup,
 | 
							model.GlobConfig.Comm.Kafka.RealTimeDataGroup,
 | 
				
			||||||
		func(msg model.InputMessage, markFn func()) {
 | 
							func(msg model.InputMessage, markFn func()) {
 | 
				
			||||||
		//ETL
 | 
								//ETL
 | 
				
			||||||
		var kafkaData model.KafkaData
 | 
								var kafkaData model.KafkaData
 | 
				
			||||||
		err = json.Unmarshal(msg.Value, &kafkaData)
 | 
								err = json.Unmarshal(msg.Value, &kafkaData)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			logs.Logger.Error("json.Unmarshal Err", zap.Error(err))
 | 
									logs.Logger.Error("json.Unmarshal Err", zap.Error(err))
 | 
				
			||||||
			markFn()
 | 
									markFn()
 | 
				
			||||||
			return
 | 
									return
 | 
				
			||||||
		}
 | 
								}
 | 
				
			||||||
		appid,err := strconv.Atoi(kafkaData.TableId)
 | 
								appid, err := strconv.Atoi(kafkaData.TableId)
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			logs.Logger.Error("strconv.Atoi(kafkaData.TableId) Err", zap.Error(err))
 | 
									logs.Logger.Error("strconv.Atoi(kafkaData.TableId) Err", zap.Error(err))
 | 
				
			||||||
			markFn()
 | 
									markFn()
 | 
				
			||||||
			return
 | 
									return
 | 
				
			||||||
		}
 | 
								}
 | 
				
			||||||
		//添加实时数据
 | 
								//添加实时数据
 | 
				
			||||||
		err = realTimeWarehousing.Add(&consumer_data.RealTimeWarehousingData{
 | 
								err = realTimeWarehousing.Add(&consumer_data.RealTimeWarehousingData{
 | 
				
			||||||
			Appid:      int64(appid),
 | 
									Appid:      int64(appid),
 | 
				
			||||||
			EventName:  kafkaData.EventName,
 | 
									EventName:  kafkaData.EventName,
 | 
				
			||||||
			CreateTime: kafkaData.ReportTime,
 | 
									CreateTime: kafkaData.ReportTime,
 | 
				
			||||||
			Data:       kafkaData.ReqData,
 | 
									Data:       kafkaData.ReqData,
 | 
				
			||||||
		})
 | 
								})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
			logs.Logger.Error("AddRealTimeData err", zap.Error(err))
 | 
									logs.Logger.Error("AddRealTimeData err", zap.Error(err))
 | 
				
			||||||
		}
 | 
								}
 | 
				
			||||||
		markFn()
 | 
								markFn()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}, func() {})
 | 
							}, func() {})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		panic(err)
 | 
							panic(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	parserPool,err := parser.NewParserPool("fastjson")
 | 
						parserPool, err := parser.NewParserPool("fastjson")
 | 
				
			||||||
	if err!=nil{
 | 
						if err != nil {
 | 
				
			||||||
		panic(err)
 | 
							panic(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -165,150 +165,150 @@ func main() {
 | 
				
			|||||||
		model.GlobConfig.Comm.Kafka.ReportData2CKGroup,
 | 
							model.GlobConfig.Comm.Kafka.ReportData2CKGroup,
 | 
				
			||||||
		func(msg model.InputMessage, markFn func()) {
 | 
							func(msg model.InputMessage, markFn func()) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		var kafkaData model.KafkaData
 | 
								var kafkaData model.KafkaData
 | 
				
			||||||
		err = json.Unmarshal(msg.Value, &kafkaData)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			logs.Logger.Error("json.Unmarshal Err", zap.Error(err))
 | 
					 | 
				
			||||||
			markFn()
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		kafkaData.Offset = msg.Offset
 | 
								err = json.Unmarshal(msg.Value, &kafkaData)
 | 
				
			||||||
		kafkaData.ConsumptionTime = msg.Timestamp.Format(util.TimeFormat)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		gjsonArr := gjson.GetManyBytes(kafkaData.ReqData, "xwl_distinct_id", "xwl_client_time")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		xwlDistinctId := gjsonArr[0].String()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		xwlClientTime := gjsonArr[1].String()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		tableId, _ := strconv.Atoi(kafkaData.TableId)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if kafkaData.EventName == ""{
 | 
					 | 
				
			||||||
			markFn()
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if xwlDistinctId == "" {
 | 
					 | 
				
			||||||
			logs.Logger.Error("xwl_distinct_id 为空", zap.String("kafkaData.ReqData", util.Bytes2str(kafkaData.ReqData)))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			var eventType = ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			switch kafkaData.ReportType {
 | 
					 | 
				
			||||||
			case model.UserReportType:
 | 
					 | 
				
			||||||
				eventType = "用户属性类型不合法"
 | 
					 | 
				
			||||||
			case model.EventReportType:
 | 
					 | 
				
			||||||
				eventType = "事件属性类型不合法"
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			reportAcceptStatus.Add(&consumer_data.ReportAcceptStatusData{
 | 
					 | 
				
			||||||
				PartDate:       kafkaData.ReportTime,
 | 
					 | 
				
			||||||
				TableId:        tableId,
 | 
					 | 
				
			||||||
				ReportType:     eventType,
 | 
					 | 
				
			||||||
				DataName:       kafkaData.EventName,
 | 
					 | 
				
			||||||
				ErrorReason:    "xwl_distinct_id 不能为空",
 | 
					 | 
				
			||||||
				ErrorHandling:  "丢弃数据",
 | 
					 | 
				
			||||||
				ReportData:     util.Bytes2str(kafkaData.ReqData),
 | 
					 | 
				
			||||||
				XwlKafkaOffset: kafkaData.Offset,
 | 
					 | 
				
			||||||
				Status:         consumer_data.FailStatus,
 | 
					 | 
				
			||||||
			})
 | 
					 | 
				
			||||||
			markFn()
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if kafkaData.Ip != "" {
 | 
					 | 
				
			||||||
			province, city, err := geoip2.GetAreaFromIP(kafkaData.Ip)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				logs.Logger.Sugar().Errorf("err", err)
 | 
									logs.Logger.Error("json.Unmarshal Err", zap.Error(err))
 | 
				
			||||||
 | 
									markFn()
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if province != "" {
 | 
					 | 
				
			||||||
				kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_province", province)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if city != "" {
 | 
					 | 
				
			||||||
				kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_city", city)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_ip", kafkaData.Ip)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		clinetT := util.Str2Time(xwlClientTime, util.TimeFormat)
 | 
					 | 
				
			||||||
		serverT := util.Str2Time(kafkaData.ReportTime, util.TimeFormat)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if math.Abs(serverT.Sub(clinetT).Minutes()) > 10 {
 | 
								kafkaData.Offset = msg.Offset
 | 
				
			||||||
			reportAcceptStatus.Add(&consumer_data.ReportAcceptStatusData{
 | 
								kafkaData.ConsumptionTime = msg.Timestamp.Format(util.TimeFormat)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								gjsonArr := gjson.GetManyBytes(kafkaData.ReqData, "xwl_distinct_id", "xwl_client_time")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								xwlDistinctId := gjsonArr[0].String()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								xwlClientTime := gjsonArr[1].String()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								tableId, _ := strconv.Atoi(kafkaData.TableId)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if kafkaData.EventName == "" {
 | 
				
			||||||
 | 
									markFn()
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if xwlDistinctId == "" {
 | 
				
			||||||
 | 
									logs.Logger.Error("xwl_distinct_id 为空", zap.String("kafkaData.ReqData", util.Bytes2str(kafkaData.ReqData)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									var eventType = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									switch kafkaData.ReportType {
 | 
				
			||||||
 | 
									case model.UserReportType:
 | 
				
			||||||
 | 
										eventType = "用户属性类型不合法"
 | 
				
			||||||
 | 
									case model.EventReportType:
 | 
				
			||||||
 | 
										eventType = "事件属性类型不合法"
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									reportAcceptStatus.Add(&consumer_data.ReportAcceptStatusData{
 | 
				
			||||||
 | 
										PartDate:       kafkaData.ReportTime,
 | 
				
			||||||
 | 
										TableId:        tableId,
 | 
				
			||||||
 | 
										ReportType:     eventType,
 | 
				
			||||||
 | 
										DataName:       kafkaData.EventName,
 | 
				
			||||||
 | 
										ErrorReason:    "xwl_distinct_id 不能为空",
 | 
				
			||||||
 | 
										ErrorHandling:  "丢弃数据",
 | 
				
			||||||
 | 
										ReportData:     util.Bytes2str(kafkaData.ReqData),
 | 
				
			||||||
 | 
										XwlKafkaOffset: kafkaData.Offset,
 | 
				
			||||||
 | 
										Status:         consumer_data.FailStatus,
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									markFn()
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if kafkaData.Ip != "" {
 | 
				
			||||||
 | 
									province, city, err := geoip2.GetAreaFromIP(kafkaData.Ip)
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										logs.Logger.Sugar().Errorf("err", err)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if province != "" {
 | 
				
			||||||
 | 
										kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_province", province)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if city != "" {
 | 
				
			||||||
 | 
										kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_city", city)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_ip", kafkaData.Ip)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								clinetT := util.Str2Time(xwlClientTime, util.TimeFormat)
 | 
				
			||||||
 | 
								serverT := util.Str2Time(kafkaData.ReportTime, util.TimeFormat)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if math.Abs(serverT.Sub(clinetT).Minutes()) > 10 {
 | 
				
			||||||
 | 
									reportAcceptStatus.Add(&consumer_data.ReportAcceptStatusData{
 | 
				
			||||||
 | 
										PartDate:       kafkaData.ReportTime,
 | 
				
			||||||
 | 
										TableId:        tableId,
 | 
				
			||||||
 | 
										ReportType:     kafkaData.GetReportTypeErr(),
 | 
				
			||||||
 | 
										DataName:       kafkaData.EventName,
 | 
				
			||||||
 | 
										ErrorReason:    "客户端上报时间误差大于十分钟",
 | 
				
			||||||
 | 
										ErrorHandling:  "丢弃数据",
 | 
				
			||||||
 | 
										ReportData:     util.Bytes2str(kafkaData.ReqData),
 | 
				
			||||||
 | 
										XwlKafkaOffset: kafkaData.Offset,
 | 
				
			||||||
 | 
										Status:         consumer_data.FailStatus,
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									logs.Logger.Sugar().Errorf("客户端上报时间误差大于十分钟", xwlClientTime, kafkaData.ReportTime)
 | 
				
			||||||
 | 
									markFn()
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_part_event", kafkaData.EventName)
 | 
				
			||||||
 | 
								kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_part_date", xwlClientTime)
 | 
				
			||||||
 | 
								kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_server_time", kafkaData.ReportTime)
 | 
				
			||||||
 | 
								kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_kafka_offset", msg.Offset)
 | 
				
			||||||
 | 
								kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_kafka_partition", msg.Partition)
 | 
				
			||||||
 | 
								pool := parserPool.Get()
 | 
				
			||||||
 | 
								defer parserPool.Put(pool)
 | 
				
			||||||
 | 
								metric, err := pool.Parse(kafkaData.ReqData)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//解析开发者上报的json数据
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									logs.Logger.Error("ParseKafkaData err", zap.Error(err))
 | 
				
			||||||
 | 
									markFn()
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//生成表名
 | 
				
			||||||
 | 
								tableName := kafkaData.GetTableName()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//新增表结构
 | 
				
			||||||
 | 
								if err := action.AddTableColumn(
 | 
				
			||||||
 | 
									kafkaData,
 | 
				
			||||||
 | 
									func(data consumer_data.ReportAcceptStatusData) { reportAcceptStatus.Add(&data) },
 | 
				
			||||||
 | 
									tableName,
 | 
				
			||||||
 | 
									metric,
 | 
				
			||||||
 | 
								); err != nil {
 | 
				
			||||||
 | 
									logs.Logger.Error("addTableColumn err", zap.String("tableName", tableName), zap.Error(err))
 | 
				
			||||||
 | 
									markFn()
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//添加元数据
 | 
				
			||||||
 | 
								if err := action.AddMetaEvent(kafkaData); err != nil {
 | 
				
			||||||
 | 
									logs.Logger.Error("addMetaEvent err", zap.Error(err))
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//入库成功
 | 
				
			||||||
 | 
								if err := reportAcceptStatus.Add(&consumer_data.ReportAcceptStatusData{
 | 
				
			||||||
				PartDate:       kafkaData.ReportTime,
 | 
									PartDate:       kafkaData.ReportTime,
 | 
				
			||||||
				TableId:        tableId,
 | 
									TableId:        tableId,
 | 
				
			||||||
				ReportType:     kafkaData.GetReportTypeErr(),
 | 
					 | 
				
			||||||
				DataName:       kafkaData.EventName,
 | 
									DataName:       kafkaData.EventName,
 | 
				
			||||||
				ErrorReason:    "客户端上报时间误差大于十分钟",
 | 
					 | 
				
			||||||
				ErrorHandling:  "丢弃数据",
 | 
					 | 
				
			||||||
				ReportData:     util.Bytes2str(kafkaData.ReqData),
 | 
					 | 
				
			||||||
				XwlKafkaOffset: kafkaData.Offset,
 | 
									XwlKafkaOffset: kafkaData.Offset,
 | 
				
			||||||
				Status:         consumer_data.FailStatus,
 | 
									Status:         consumer_data.SuccessStatus,
 | 
				
			||||||
			})
 | 
								}); err != nil {
 | 
				
			||||||
			logs.Logger.Sugar().Errorf("客户端上报时间误差大于十分钟", xwlClientTime, kafkaData.ReportTime)
 | 
									logs.Logger.Error("reportAcceptStatus Add SuccessStatus err", zap.Error(err))
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//添加数据到ck用于后台统计
 | 
				
			||||||
 | 
								if err := reportData2CK.Add(map[string]*parser.FastjsonMetric{
 | 
				
			||||||
 | 
									tableName: metric,
 | 
				
			||||||
 | 
								}); err != nil {
 | 
				
			||||||
 | 
									logs.Logger.Error("reportData2CK err", zap.Error(err))
 | 
				
			||||||
 | 
									markFn()
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			markFn()
 | 
								markFn()
 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_part_event", kafkaData.EventName)
 | 
								//logs.Logger.Info("链路所花时长", zap.String("time", time.Now().Sub(startT).String()))
 | 
				
			||||||
		kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_part_date", xwlClientTime)
 | 
					 | 
				
			||||||
		kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_server_time", kafkaData.ReportTime)
 | 
					 | 
				
			||||||
		kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_kafka_offset", msg.Offset)
 | 
					 | 
				
			||||||
		kafkaData.ReqData, _ = sjson.SetBytes(kafkaData.ReqData, "xwl_kafka_partition", msg.Partition)
 | 
					 | 
				
			||||||
		pool := parserPool.Get()
 | 
					 | 
				
			||||||
		defer parserPool.Put(pool)
 | 
					 | 
				
			||||||
		metric, err :=  pool.Parse(kafkaData.ReqData)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//解析开发者上报的json数据
 | 
							}, func() {})
 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			logs.Logger.Error("ParseKafkaData err", zap.Error(err))
 | 
					 | 
				
			||||||
			markFn()
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		//生成表名
 | 
					 | 
				
			||||||
		tableName := kafkaData.GetTableName()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		//新增表结构
 | 
					 | 
				
			||||||
		if err := action.AddTableColumn(
 | 
					 | 
				
			||||||
			kafkaData,
 | 
					 | 
				
			||||||
			func(data consumer_data.ReportAcceptStatusData) { reportAcceptStatus.Add(&data) },
 | 
					 | 
				
			||||||
			tableName,
 | 
					 | 
				
			||||||
			metric,
 | 
					 | 
				
			||||||
		); err != nil {
 | 
					 | 
				
			||||||
			logs.Logger.Error("addTableColumn err", zap.String("tableName", tableName), zap.Error(err))
 | 
					 | 
				
			||||||
			markFn()
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		//添加元数据
 | 
					 | 
				
			||||||
		if err := action.AddMetaEvent(kafkaData); err != nil {
 | 
					 | 
				
			||||||
			logs.Logger.Error("addMetaEvent err", zap.Error(err))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		//入库成功
 | 
					 | 
				
			||||||
		if err := reportAcceptStatus.Add(&consumer_data.ReportAcceptStatusData{
 | 
					 | 
				
			||||||
			PartDate:       kafkaData.ReportTime,
 | 
					 | 
				
			||||||
			TableId:        tableId,
 | 
					 | 
				
			||||||
			DataName:       kafkaData.EventName,
 | 
					 | 
				
			||||||
			XwlKafkaOffset: kafkaData.Offset,
 | 
					 | 
				
			||||||
			Status:         consumer_data.SuccessStatus,
 | 
					 | 
				
			||||||
		}); err != nil {
 | 
					 | 
				
			||||||
			logs.Logger.Error("reportAcceptStatus Add SuccessStatus err", zap.Error(err))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		//添加数据到ck用于后台统计
 | 
					 | 
				
			||||||
		if err := reportData2CK.Add(map[string]*parser.FastjsonMetric{
 | 
					 | 
				
			||||||
			tableName: metric,
 | 
					 | 
				
			||||||
		}); err != nil {
 | 
					 | 
				
			||||||
			logs.Logger.Error("reportData2CK err", zap.Error(err))
 | 
					 | 
				
			||||||
			markFn()
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		markFn()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		//logs.Logger.Info("链路所花时长", zap.String("time", time.Now().Sub(startT).String()))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	}, func() {})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		panic(err)
 | 
							panic(err)
 | 
				
			||||||
 | 
				
			|||||||
@ -48,8 +48,8 @@ func (this *ReportData2CK) Flush() (err error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	rowsMap := map[string][][]interface{}{}
 | 
						rowsMap := map[string][][]interface{}{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for bufferIndex := range this.buffer {
 | 
						for _,obj := range this.buffer {
 | 
				
			||||||
		for tableName := range this.buffer[bufferIndex] {
 | 
							for tableName,data := range obj {
 | 
				
			||||||
			rowArr := []interface{}{}
 | 
								rowArr := []interface{}{}
 | 
				
			||||||
			rows := [][]interface{}{}
 | 
								rows := [][]interface{}{}
 | 
				
			||||||
			if _, haveKey := rowsMap[tableName]; haveKey {
 | 
								if _, haveKey := rowsMap[tableName]; haveKey {
 | 
				
			||||||
@ -59,7 +59,7 @@ func (this *ReportData2CK) Flush() (err error) {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			dims, _ := TableColumnMap.Load(tableName)
 | 
								dims, _ := TableColumnMap.Load(tableName)
 | 
				
			||||||
			for _, dim := range dims.([]*model2.ColumnWithType) {
 | 
								for _, dim := range dims.([]*model2.ColumnWithType) {
 | 
				
			||||||
				val := parser.GetValueByType(this.buffer[bufferIndex][tableName], dim)
 | 
									val := parser.GetValueByType(data, dim)
 | 
				
			||||||
				rowArr = append(rowArr, val)
 | 
									rowArr = append(rowArr, val)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -68,6 +68,7 @@ func (this *ReportData2CK) Flush() (err error) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bytesbuffer:=bytes.Buffer{}
 | 
						bytesbuffer:=bytes.Buffer{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	TableColumnMap.Range(func(tableName, value interface{}) bool {
 | 
						TableColumnMap.Range(func(tableName, value interface{}) bool {
 | 
				
			||||||
@ -107,6 +108,7 @@ func (this *ReportData2CK) Flush() (err error) {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			defer stmt.Close()
 | 
								defer stmt.Close()
 | 
				
			||||||
			haveFail := false
 | 
								haveFail := false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			for _, row := range rowsMap[tableName.(string)] {
 | 
								for _, row := range rowsMap[tableName.(string)] {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if _, err := stmt.Exec(row...); err != nil {
 | 
									if _, err := stmt.Exec(row...); err != nil {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user