From 173707dc0f85e0fd8acc7ce5e43a93cb0eb4fe25 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期四, 08 八月 2019 14:04:30 +0800 Subject: [PATCH] 先切回调库方式 --- ruleserver/readyDataForRule.go | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 54 insertions(+), 1 deletions(-) diff --git a/ruleserver/readyDataForRule.go b/ruleserver/readyDataForRule.go index 77e739f..2ec8676 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 { @@ -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("鏁版嵁鎺ㄩ�佹垚鍔燂紒鏀跺埌鍝嶅簲,鏁版嵁闀垮害涓猴細",len(msg)) + return msg +} -- Gitblit v1.8.0