| | |
| | | func InsertToEs(msg structure.ResultMsg) { |
| | | defer func() { |
| | | if err := recover(); err != nil { |
| | | _ = logger.Error("es模块儿的异常捕获:", err) |
| | | logger.Error("es模块儿的异常捕获:", err) |
| | | } |
| | | }() |
| | | localConfig1, err := cache.GetServerInfo() |
| | |
| | | faces = PutFace(faces, results.([]structure.Result)) |
| | | //logger.Info("整理后的数据:",faces) |
| | | if faces != nil { |
| | | _ = logger.Warn("face不为nil") |
| | | logger.Warn("face不为nil") |
| | | var imgMaxUrl []string = []string{} |
| | | var picTime string = "" |
| | | for _, face := range faces { |
| | |
| | | bytes := util.SubImg(i, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height),face.Type) |
| | | resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) |
| | | if err != nil { |
| | | _ = logger.Error("上传小图出错") |
| | | logger.Error("上传小图出错") |
| | | } |
| | | // 上传大图 |
| | | if len(imgMaxUrl) == 0 { |
| | |
| | | esid := face.Liker[0].TargetId |
| | | returnMsg, err1 := esutil.AppendTargetInfo(esid, string(requstbody),EsInfo.EsIndex.AIOcean.IndexName,serverIp,serverPort) |
| | | if err1 != nil { |
| | | _ = logger.Error("追加数据出错!---", err1) |
| | | logger.Error("追加数据出错!---", err1) |
| | | } else { |
| | | logger.Info("插入es返回的信息:", returnMsg) |
| | | // 发出录像信号 |
| | |
| | | } else { |
| | | resp1, err1 := EsReq("POST", videoPersonUrl, requstbody) |
| | | if err1 != nil { |
| | | _ = logger.Error("上传ES出错!---", err1) |
| | | logger.Error("上传ES出错!---", err1) |
| | | } else { |
| | | logger.Info("插入es返回的信息:", resp1) |
| | | // 发出录像信号 |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | } |
| | | resp1, err2 := EsReq("POST", videoPersonUrl, requstbody) |
| | | if err2 != nil { |
| | | _ = logger.Error("往ES插入数据失败", err) |
| | | logger.Error("往ES插入数据失败", err) |
| | | } else { |
| | | logger.Debug("插入es返回的数据信息是(yolo):", resp1) |
| | | // 发出录像信号 |
| | |
| | | logger.Info("联动任务的录像信号:", index) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: link.CameraId, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{strconv.Itoa(index)}, Type: 2}) |
| | | } |
| | | _ = logger.Warn("__________________________________________往ES插入yolo数据成功") |
| | | logger.Warn("__________________________________________往ES插入yolo数据成功") |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | } |
| | | resp1, err2 := EsReq("POST", videoPersonUrl, requstbody) |
| | | if err2 != nil { |
| | | _ = logger.Error("往ES插入数据失败", err) |
| | | logger.Error("往ES插入数据失败", err) |
| | | } else { |
| | | logger.Debug("插入es返回的数据信息是(target):", resp1) |
| | | // 发出录像信号 |
| | |
| | | logger.Info("联动任务的录像信号:", index) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: link.CameraId, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{strconv.Itoa(index)}, Type: 2}) |
| | | } |
| | | _ = logger.Warn("__________________________________________往ES插入target数据成功") |
| | | logger.Warn("__________________________________________往ES插入target数据成功") |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForTarget(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return nil |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | // 根据规则的sdkId查出其对应的ipcId,用ipcId去找该比对的数据 |
| | | sdk, err := cache.GetSdkById(groupRule.Rules[j].SdkId) |
| | | if err != nil { |
| | | _ = logger.Error("没查到sdk的信息---", err) |
| | | logger.Error("没查到sdk的信息---", err) |
| | | } |
| | | ipcId := sdk.IpcId |
| | | sdkName := sdk.SdkName |
| | |
| | | trackArg["faceFeature"] = arg.AttachArg.Feature |
| | | b,err := json.Marshal(trackArg) |
| | | if err != nil { |
| | | _ = logger.Error("json序列化错误", err) |
| | | logger.Error("json序列化错误", err) |
| | | } |
| | | dataId := getCompareMsg(b) |
| | | if esId == dataId { // 说明没比到相似的人 |
| | |
| | | var msg []byte |
| | | |
| | | if sock, err = req.NewSocket(); err != nil { |
| | | _ = logger.Error("创建请求socket失败: %s", err.Error()) |
| | | logger.Error("创建请求socket失败: %s", err.Error()) |
| | | } |
| | | errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024) |
| | | if errSize != nil { |
| | | _ = logger.Error("Failed set MaxRecvSize: %v", err) |
| | | logger.Error("Failed set MaxRecvSize: %v", err) |
| | | } |
| | | //sock.AddTransport(ipc.NewTransport()) |
| | | sock.AddTransport(tcp.NewTransport()) |
| | | serverIP, _ := GetLocalIP() |
| | | if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil { |
| | | _ = logger.Error("请求socket拨号失败: %s", err.Error()) |
| | | logger.Error("请求socket拨号失败: %s", err.Error()) |
| | | } |
| | | logger.Info("序列化数据") |
| | | initFlag = true |
| | |
| | | case data := <- sender: |
| | | logger.Debug("推送数据:",len(data)) |
| | | if err = sock.Send(data); err != nil { |
| | | _ = logger.Error("推送socket发送数据失败: %s", err.Error()) |
| | | logger.Error("推送socket发送数据失败: %s", err.Error()) |
| | | } |
| | | if msg, err = sock.Recv(); err != nil { |
| | | _ = logger.Error("接收响应失败: %s", err.Error()) |
| | | logger.Error("接收响应失败: %s", err.Error()) |
| | | } |
| | | logger.Debug("数据推送成功!收到响应,数据长度为:",len(msg)) |
| | | receiver <- string(msg) |
| | |
| | | func InsertToEs(msg structure.ResultMsg) { |
| | | defer func() { |
| | | if err := recover(); err != nil { |
| | | _ = logger.Error("es模块儿的异常捕获:", err) |
| | | logger.Error("es模块儿的异常捕获:", err) |
| | | } |
| | | }() |
| | | localConfig1, err := cache.GetServerInfo() |
| | |
| | | faces = PutFace(faces, results.([]structure.Result)) |
| | | //logger.Info("整理后的数据:",faces) |
| | | if faces != nil { |
| | | _ = logger.Warn("face不为nil") |
| | | logger.Warn("face不为nil") |
| | | var imgMaxUrl []string = []string{} |
| | | var picTime string = "" |
| | | for _, face := range faces { |
| | |
| | | bytes := util.SubImg(i, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height),face.Type) |
| | | resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) |
| | | if err != nil { |
| | | _ = logger.Error("上传小图出错") |
| | | logger.Error("上传小图出错") |
| | | } |
| | | // 上传大图 |
| | | if len(imgMaxUrl) == 0 { |
| | |
| | | esid := face.Liker[0].TargetId |
| | | returnMsg, err1 := esutil.AppendTargetInfo(esid, string(requstbody),EsInfo.EsIndex.AIOcean.IndexName,serverIp,serverPort) |
| | | if err1 != nil { |
| | | _ = logger.Error("追加数据出错!---", err1) |
| | | logger.Error("追加数据出错!---", err1) |
| | | } else { |
| | | logger.Info("插入es返回的信息:", returnMsg) |
| | | // 发出录像信号 |
| | |
| | | } else { |
| | | resp1, err1 := EsReq("POST", videoPersonUrl, requstbody) |
| | | if err1 != nil { |
| | | _ = logger.Error("上传ES出错!---", err1) |
| | | logger.Error("上传ES出错!---", err1) |
| | | } else { |
| | | logger.Info("插入es返回的信息:", resp1) |
| | | // 发出录像信号 |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | } |
| | | resp1, err2 := EsReq("POST", videoPersonUrl, requstbody) |
| | | if err2 != nil { |
| | | _ = logger.Error("往ES插入数据失败", err) |
| | | logger.Error("往ES插入数据失败", err) |
| | | } else { |
| | | logger.Debug("插入es返回的数据信息是(yolo):", resp1) |
| | | // 发出录像信号 |
| | |
| | | logger.Info("联动任务的录像信号:", index) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: link.CameraId, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{strconv.Itoa(index)}, Type: 2}) |
| | | } |
| | | _ = logger.Warn("__________________________________________往ES插入yolo数据成功") |
| | | logger.Warn("__________________________________________往ES插入yolo数据成功") |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | } |
| | | resp1, err2 := EsReq("POST", videoPersonUrl, requstbody) |
| | | if err2 != nil { |
| | | _ = logger.Error("往ES插入数据失败", err) |
| | | logger.Error("往ES插入数据失败", err) |
| | | } else { |
| | | logger.Debug("插入es返回的数据信息是(target):", resp1) |
| | | // 发出录像信号 |
| | |
| | | logger.Info("联动任务的录像信号:", index) |
| | | ruleserver.AddLxMessage(&protomsg.VideotapeInfo{EsDataId: msg.Push.PushId, CameraId: link.CameraId, TaskId: msg.Tasklab.Taskid, VideoUrl: msg.Push.VideoUrl, ImgId: i.Id, SdkIds: []string{strconv.Itoa(index)}, Type: 2}) |
| | | } |
| | | _ = logger.Warn("__________________________________________往ES插入target数据成功") |
| | | logger.Warn("__________________________________________往ES插入target数据成功") |
| | | //os.Exit(1) |
| | | } |
| | | } |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForTarget(msg.Cid, i, msg.RuleResult["target"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | err = proto.Unmarshal(bdata, &i) |
| | | resp1, err1 := util.DrawPolygonOnImageForYolo(msg1.Cid, i, msg1.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err1 != nil { |
| | | _ = logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | logger.Error("缓存数据画框或上传图片服务器出错", err) |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp1) |
| | | } |
| | |
| | | //resp, err = util.PostFormBufferData(weedfsUrl, i, uuid.NewV4().String()) |
| | | resp, err = util.DrawPolygonOnImageForYolo(msg.Cid, i, msg.RuleResult["yolo"].([]structure.Result), weedfsUrl) |
| | | if err != nil { |
| | | _ = logger.Error("画框或上传图片服务器出错", err) |
| | | logger.Error("画框或上传图片服务器出错", err) |
| | | return nil |
| | | } else { |
| | | logger.Info("上传的图片信息:", resp) |
| | |
| | | } |
| | | errSize := sock.SetOption(mangos.OptionMaxRecvSize,30*1024*1024) |
| | | if errSize != nil { |
| | | _ = logger.Error("传输的数据超过大小限制") |
| | | logger.Error("传输的数据超过大小限制") |
| | | return |
| | | } |
| | | errTimeOut := sock.SetOption(mangos.OptionRecvDeadline,time.Millisecond * 1500) |
| | | if errTimeOut != nil { |
| | | _ = logger.Error("接收响应超时") |
| | | logger.Error("接收响应超时") |
| | | return |
| | | } |
| | | errTimeOut1 := sock.SetOption(mangos.OptionSendDeadline,time.Millisecond * 1500) |
| | | if errTimeOut1 != nil { |
| | | _ = logger.Error("发送超时") |
| | | logger.Error("发送超时") |
| | | return |
| | | } |
| | | errWrite := sock.SetOption(mangos.OptionWriteQLen,5) |
| | | if errWrite != nil { |
| | | _ = logger.Error("设置传输缓存大小失败") |
| | | logger.Error("设置传输缓存大小失败") |
| | | return |
| | | } |
| | | errRead := sock.SetOption(mangos.OptionReadQLen,5) |
| | | if errRead != nil { |
| | | _ = logger.Error("设置传输缓存大小失败") |
| | | logger.Error("设置传输缓存大小失败") |
| | | return |
| | | } |
| | | sock.AddTransport(tcp.NewTransport()) |
| | | if err = sock.Dial("tcp://"+url); err != nil { |
| | | _ = logger.Error("请求socket拨号失败: ", err.Error()) |
| | | logger.Error("请求socket拨号失败: ", err.Error()) |
| | | } |
| | | logger.Info("序列化数据") |
| | | |
| | |
| | | //} |
| | | errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024) |
| | | if errSize != nil { |
| | | _ = logger.Error("Failed set MaxRecvSize: %v", err) |
| | | logger.Error("Failed set MaxRecvSize: %v", err) |
| | | return nil |
| | | } |
| | | serverIP, _ := GetLocalIP() |
| | | if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil { |
| | | _ = logger.Error("请求socket拨号失败: %s", err.Error()) |
| | | logger.Error("请求socket拨号失败: %s", err.Error()) |
| | | } |
| | | //sock.AddTransport(ipc.NewTransport()) |
| | | sock.AddTransport(tcp.NewTransport()) |
| | |
| | | logger.Debug("推送数据") |
| | | //bytes := []byte("ndfasojdfaidsos") |
| | | if err = sock.Send(bytes); err != nil { |
| | | _ = logger.Error("推送socket发送数据失败: %s", err.Error()) |
| | | logger.Error("推送socket发送数据失败: %s", err.Error()) |
| | | //os.Exit(1) |
| | | } |
| | | if msg, err = sock.Recv(); err != nil { |
| | | _ = logger.Error("接收响应失败: %s", err.Error()) |
| | | logger.Error("接收响应失败: %s", err.Error()) |
| | | //os.Exit(1) |
| | | } |
| | | logger.Debug("数据推送成功!收到响应,数据长度为:",len(msg)) |
| | |
| | | var msg []byte |
| | | |
| | | if sock, err = req.NewSocket(); err != nil { |
| | | _ = logger.Error("创建请求socket失败: %s", err.Error()) |
| | | logger.Error("创建请求socket失败: %s", err.Error()) |
| | | } |
| | | errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024) |
| | | if errSize != nil { |
| | | _ = logger.Error("Failed set MaxRecvSize: %v", err) |
| | | logger.Error("Failed set MaxRecvSize: %v", err) |
| | | } |
| | | //sock.AddTransport(ipc.NewTransport()) |
| | | sock.AddTransport(tcp.NewTransport()) |
| | | serverIP, _ := GetLocalIP() |
| | | if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil { |
| | | _ = logger.Error("请求socket拨号失败: %s", err.Error()) |
| | | logger.Error("请求socket拨号失败: %s", err.Error()) |
| | | } |
| | | logger.Info("序列化数据") |
| | | |
| | |
| | | } |
| | | logger.Debug("推送数据") |
| | | if err = sock.Send(bytes); err != nil { |
| | | _ = logger.Error("推送socket发送数据失败: %s", err.Error()) |
| | | logger.Error("推送socket发送数据失败: %s", err.Error()) |
| | | } |
| | | if msg, err = sock.Recv(); err != nil { |
| | | _ = logger.Error("接收响应失败: %s", err.Error()) |
| | | logger.Error("接收响应失败: %s", err.Error()) |
| | | } |
| | | logger.Debug("数据推送成功!收到响应,数据长度为:",len(msg)) |
| | | receiver <- msg |