From 5a9ed312168e352e348474405163de7054070836 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 08 八月 2019 17:19:00 +0800 Subject: [PATCH] --- --- ruleserver/readyDataForRule.go | 65 +++++++++++++++++++++++++++++++- 1 files changed, 63 insertions(+), 2 deletions(-) diff --git a/ruleserver/readyDataForRule.go b/ruleserver/readyDataForRule.go index 1a42611..5d52379 100644 --- a/ruleserver/readyDataForRule.go +++ b/ruleserver/readyDataForRule.go @@ -9,14 +9,19 @@ "github.com/go-yaml/yaml" "io/ioutil" "math" + "nanomsg.org/go-mangos" + //"nanomsg.org/go-mangos/protocol/req" + "nanomsg.org/go-mangos/transport/tcp" + "os" "ruleprocess/cache" "ruleprocess/logger" + "github.com/golang/protobuf/proto" "strconv" "time" ) var serverIp, serverPort, dbTablePersons string - +var sock mangos.Socket type conf struct { PhotoUrl string `yaml:"photoUrl"` VideoPersons string `yaml:"videoPersons"` @@ -45,6 +50,10 @@ } logger.Debug("鏈満淇℃伅鍜宻erver淇℃伅锛�", localConfig, serverIp, serverPort) bigCache.Init(dbTablePersons, serverIp, serverPort, localConfig.ServerId) + //sock, err = req.NewSocket(); + //if err != nil { + // logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error()) + //} } type BaseInfo struct { @@ -159,6 +168,12 @@ // 缁欑洰鏍囧~鍏卨iker func (arg *Arg) fillLiker(tableId []string, compareThreshold float32) { bytes := bigCache.GetComparePersonBaseInfo(tableId, arg.Feature, compareThreshold) + //comArg := &protomsg.CompareArgs{ + // TableIds:tableId, + // FaceFeature:arg.Feature, + // CompareThreshold:compareThreshold, + //} + //bytes := Push("tcp://192.168.1.182:40010",comArg,sock) var m map[string]float32 err1 := json.Unmarshal(bytes, &m) if err1 != nil { @@ -236,6 +251,14 @@ //logger.Info("--------------鐪嬬湅compareFlag鐨勫�煎拰tableId鍜宎reaMap.args鐨勯暱搴︼細",compareFlag,tableIds,len(areaMap.args)) for _, arg := range areaMap.args { arg.Liker = arg.Liker[0:0] + logger.Info("娓呯┖涔嬪悗鐪嬬湅涔嬪墠鎵撶殑浜鸿劯鏍囩鍙樹簡娌★細") + if args.RuleResult["face"] != nil && len(args.RuleResult["face"].([]FaceResult)) > 0 { + for _, faceResult := range args.RuleResult["face"].([]FaceResult) { + for _,arg := range faceResult.Args { + logger.Info("浜哄憳鍒嗗�兼槸锛�",arg.Score,"liker鐨勬暟閲忎负",arg.Liker) + } + } + } if compareFlag == 1 { arg.fillLiker(nil, threshold) } @@ -278,7 +301,7 @@ a.filterData = append(a.filterData, &arg1) } } - logger.Info("鍖哄煙鏄細",areaPoints,"鍖哄煙鍐呯洰鏍囨暟閲忎负锛�",a.targetNum,"---",len(a.filterData)) + //logger.Info("鍖哄煙鏄細",areaPoints,"鍖哄煙鍐呯洰鏍囨暟閲忎负锛�",a.targetNum,"---",len(a.filterData)) a.time = time.Unix(time.Now().Unix(), 0).String()[11:16] a.keepRight = arg.KeepRight a.isStatic = arg.IsStatic @@ -299,3 +322,41 @@ arg.AreaMapList = append(arg.AreaMapList, &areaMap) } } + +func Push(url string,data *protomsg.CompareArgs,sock mangos.Socket) []byte{ + //var sock mangos.Socket + var err error + var msg []byte + + //if sock, err = req.NewSocket(); err != nil { + // logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error()) + //} + errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024) + if errSize != nil { + logger.Error("Failed set MaxRecvSize: %v", err) + return nil + } + //sock.AddTransport(ipc.NewTransport()) + sock.AddTransport(tcp.NewTransport()) + if err = sock.Dial(url); err != nil { + logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error()) + } + logger.Info("搴忓垪鍖栨暟鎹�") + bytes,err1 := proto.Marshal(data) + logger.Info("鏁版嵁闀垮害涓猴細",len(bytes)) + if err1 != nil { + logger.Info("搴忓垪鍖栧け璐ワ細",err1) + } + logger.Debug("鎺ㄩ�佹暟鎹�") + //bytes := []byte("ndfasojdfaidsos") + if err = sock.Send(bytes); err != nil { + logger.Error("鎺ㄩ�乻ocket鍙戦�佹暟鎹け璐�: %s", err.Error()) + os.Exit(1) + } + if msg, err = sock.Recv(); err != nil { + logger.Error("鎺ユ敹鍝嶅簲澶辫触: %s", err.Error()) + os.Exit(1) + } + logger.Debug("鏁版嵁鎺ㄩ�佹垚鍔燂紒鏀跺埌鍝嶅簲,鏁版嵁闀垮害涓猴細",len(msg)) + return msg +} -- Gitblit v1.8.0