From d96f024e19c72065f248df0508911f487b72505b Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期三, 21 八月 2019 16:16:28 +0800 Subject: [PATCH] compare proc devide 2,es and db --- controllers/fileController.go | 31 ++++++++++++--- config/dev.yaml | 6 ++- service/FaceCompareService.go | 53 +++++++++++++++++++------- extend/config/config.go | 13 +++++- 4 files changed, 76 insertions(+), 27 deletions(-) diff --git a/config/dev.yaml b/config/dev.yaml index 7fc7bd1..0a5ece6 100644 --- a/config/dev.yaml +++ b/config/dev.yaml @@ -6,9 +6,11 @@ imageUrl: http://192.168.1.203:6080 publicDomain: http://bsic.asuscomm.com networkAdapter: enp8s0 -compare: +dbpersoncompare: + url: 127.0.0.1:40010 +espersoncompare: url: - - 127.0.0.1:40010 + - 127.0.0.1:40011 weedfs: ip: 192.168.1.203 uploadport: 6333 diff --git a/controllers/fileController.go b/controllers/fileController.go index adb0f1d..c9ec1c0 100644 --- a/controllers/fileController.go +++ b/controllers/fileController.go @@ -368,11 +368,12 @@ CompareThreshold: searchBody.Threshold, } + var hasCompEsPerson = false if searchBody.DataBases !=nil { for idx,tableId :=range searchBody.DataBases { if tableId == "esData" { searchBody.DataBases = append(searchBody.DataBases[:idx], searchBody.DataBases[idx+1:]...) - searchBody.DataBases = append(searchBody.DataBases,service.CaptureTable) + hasCompEsPerson = true break } } @@ -395,22 +396,38 @@ timeStart := time.Now() compareService := service.NewFaceCompareService(arg) - compareOnce := compareService.Compare() - totalData := compareOnce.CompareData + var totalData service.CompareList + if len(arg.TableIds) >0 {//鏈夋瘮瀵瑰簳搴� + dbPersonTargets := compareService.CompareDbPersons() + if dbPersonTargets !=nil { + totalData = append(totalData,*dbPersonTargets...) + } + } + if hasCompEsPerson {//鏈夋瘮瀵笶s鎶撴媿 + esPersons := compareService.CompareVideoPersons() + if esPersons !=nil { + totalData = append(totalData, *esPersons...) + } + } logger.Debug("comp 姣斿缁撴潫锛岀敤鏃讹細",time.Since(timeStart)) + service.SetCompResultByNum(&service.CompareOnce{ + CompareNum: compareService.CompareNum, + CompareData: &totalData, + }) + m := make(map[string]interface{},3) if totalData != nil && totalData.Len() > 0{ sort.Sort(totalData) total := totalData.Len() - m["compareNum"] = compareOnce.CompareNum + m["compareNum"] = compareService.CompareNum m["total"] = total var sCompResult protomsg.SdkCompareResult if total <= searchBody.Size { - sCompResult.CompareResult = *totalData + sCompResult.CompareResult = totalData } else { - sCompResult.CompareResult = (*totalData)[0:searchBody.Size] + sCompResult.CompareResult = totalData[0:searchBody.Size] } resultList := FillDataToCompareResult(&sCompResult) m["totalList"] = resultList @@ -418,7 +435,7 @@ } else { m["total"] = 0 - m["compareNum"] = searchBody.CompareNum + m["compareNum"] = compareService.CompareNum m["totalList"] = []CompareResult{} } util.ResponseFormat(c,code.Success,m) diff --git a/extend/config/config.go b/extend/config/config.go index a4edba7..20e52bc 100644 --- a/extend/config/config.go +++ b/extend/config/config.go @@ -64,11 +64,17 @@ var DBconf = &database{} -type CompareServer struct { +type dbpersoncompare struct { + Url string `mapstructure:"url"` +} + +type espersoncompare struct { Url []string `mapstructure:"url"` } -var CompServerInfo = &CompareServer{} +var DbPersonCompInfo = &dbpersoncompare{} + +var EsCompServerInfo = &espersoncompare{} // Init is an exported method that takes the environment starts the viper @@ -88,5 +94,6 @@ viper.UnmarshalKey("redis", RedisConf) viper.UnmarshalKey("database", DBconf) viper.UnmarshalKey("weedfs", WeedFs) - viper.UnmarshalKey("compare", CompServerInfo) + viper.UnmarshalKey("dbpersoncompare",DbPersonCompInfo) + viper.UnmarshalKey("espersoncompare", EsCompServerInfo) } diff --git a/service/FaceCompareService.go b/service/FaceCompareService.go index bc94ee3..04d5040 100644 --- a/service/FaceCompareService.go +++ b/service/FaceCompareService.go @@ -63,21 +63,22 @@ var CaptureTable = "capturetable" // 鎶撴媿搴� -func (sv *FaceCompareService) Compare() *CompareOnce{ +func (sv *FaceCompareService) CompareVideoPersons() *CompareList{ + sv.CompareArgs.TableIds = []string { CaptureTable } b, err := proto.Marshal(&sv.CompareArgs) - compServerList := config.CompServerInfo.Url - logger.Debug("compServerList:", compServerList) - //1.鍚戝悇涓猚ompare杩涚▼鍙戣捣璇锋眰鎷垮埌姣斿缁撴灉 + esCompServerList := config.EsCompServerInfo.Url + logger.Debug("compServerList:", esCompServerList) + //1.鍚戝悇涓狤s compare杩涚▼鍙戣捣璇锋眰鎷垮埌姣斿缁撴灉 var resultList CompareList - //resultList :=make([]*protomsg.SdkCompareEach,0) - for _,str :=range compServerList{ + + for _,str :=range esCompServerList{ reqUrl := "tcp://"+str resultB := doCompareRequest(reqUrl,b) if resultB == nil || len(*resultB) ==0 { continue } var sdkCompResult protomsg.SdkCompareResult - //rList :=make([]protomsg.Esinfo,0) + err = proto.Unmarshal(*resultB, &sdkCompResult) if err !=nil { logger.Debug("comp sdkCompareResult unmarshal err:", err) @@ -87,19 +88,41 @@ logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult)) if len(sdkCompResult.CompareResult) >0 { resultList = append(resultList, sdkCompResult.CompareResult...) - //resultList = append(resultList, FillDataToCompareResult(&sdkCompResult)...) } } logger.Debug("comp totalList.len:", len(resultList)) - //2.缂撳瓨姣斿缁撴灉 - co := &CompareOnce{ - CompareNum: sv.CompareNum, - CompareData: &resultList, - } - SetCompResultByNum(co) + return &resultList +} - return co +//姣斿搴曞簱 +func (sv *FaceCompareService) CompareDbPersons() *CompareList{ + b, err := proto.Marshal(&sv.CompareArgs) + dbPersonCompServerUrl := config.DbPersonCompInfo.Url + logger.Debug("comp Server url:", dbPersonCompServerUrl) + + var resultList CompareList + + reqUrl := "tcp://"+dbPersonCompServerUrl + resultB := doCompareRequest(reqUrl,b) + if resultB == nil || len(*resultB) ==0 { + return nil + } + var sdkCompResult protomsg.SdkCompareResult + err = proto.Unmarshal(*resultB, &sdkCompResult) + if err !=nil { + logger.Debug("comp sdkCompareResult unmarshal err:", err) + return nil + } + + logger.Debug("comp len(rList):", len(sdkCompResult.CompareResult)) + if len(sdkCompResult.CompareResult) >0 { + resultList = append(resultList, sdkCompResult.CompareResult...) + } + + logger.Debug("comp totalList.len:", len(resultList)) + + return &resultList } func doCompareRequest(url string,args []byte) *[]byte{ -- Gitblit v1.8.0