From 1c1e1c57779e663aeec74800d656e7fae0f373b0 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 08 八月 2019 13:35:34 +0800 Subject: [PATCH] ---人脸比对改为进程方式 --- ruleserver/readyDataForRule.go | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 55 insertions(+), 2 deletions(-) diff --git a/ruleserver/readyDataForRule.go b/ruleserver/readyDataForRule.go index 77e739f..28c2fd4 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 { @@ -158,7 +167,13 @@ // 缁欑洰鏍囧~鍏卨iker func (arg *Arg) fillLiker(tableId []string, compareThreshold float32) { - bytes := bigCache.GetComparePersonBaseInfo(tableId, arg.Feature, compareThreshold) + // 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 { @@ -307,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("鏁版嵁鎺ㄩ�佹垚鍔燂紒鏀跺埌鍝嶅簲",string(msg)) + return msg +} -- Gitblit v1.8.0