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