From ece6aac26398cd64e5b3ee450ccb7365b4b142c1 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期六, 19 十月 2019 11:15:53 +0800 Subject: [PATCH] 启动多个groutine处理程序 --- main.go | 45 ++++++++++++++++++++++++++++----------------- 1 files changed, 28 insertions(+), 17 deletions(-) diff --git a/main.go b/main.go index 411d714..7606135 100644 --- a/main.go +++ b/main.go @@ -7,7 +7,7 @@ "net/http" _ "net/http/pprof" "ruleprocess/insertdata" - "ruleprocess/labelFilter" + "ruleprocess/structure" "ruleprocess/util" "time" @@ -16,7 +16,7 @@ "flag" "fmt" "github.com/golang/protobuf/proto" - "ruleprocess/logger" + "basic.com/valib/logger.git" //"gocv.io/x/gocv" //"image" //"image/color" @@ -24,6 +24,7 @@ "ruleprocess/cache" "ruleprocess/ruleserver" "sync" + "github.com/spf13/viper" ) var dbIp = flag.String("dbIp", "127.0.0.1", "dbserver ip") @@ -31,12 +32,22 @@ var surveyPort = flag.Int("surveyPort", 40007, "survey port") //蹇冭烦 var pubPort = flag.Int("pubPort", 50007, "pubsub port") //鏁版嵁鏇存柊 var initchan = make(chan bool) +var env = flag.String("env","pro","env set") func init() { + flag.Parse() // 鏃ュ織鍒濆鍖� - logger.Config("./info.log", logger.DebugLevel) - logger.Info("鏃ュ織鍒濆鍖栨垚鍔燂紒") + insertdata.Init(*env) + var logFile = "./logger/" + if viper.GetString("LogBasePath") != "" { + logFile = viper.GetString("LogBasePath") + } + logFile = logFile + "ruleprocess.log" + fmt.Println("鏃ュ織鍦板潃锛�",logFile) + logger.Config(logFile, logger.DebugLevel) + logger.SetSaveDays(7) + logger.Info("鏃ュ織鍒濆鍖栨垚鍔燂紒") } func main() { //fmt.Println("缂撳瓨鍒濆鍖栧畬鎴�",<- initchan)//dbserver鍒濆鍖栧畬姣� @@ -80,23 +91,23 @@ } else { //runtime.GOMAXPROCS(runtime.NumCPU()) //logger.Debug("浣跨敤鐨刢pu涓暟锛�",runtime.NumCPU()) - //go func(msg []byte) { + go func(msg []byte) { logger.Debug("褰撳墠鏃堕棿鎴筹細", time.Now().Unix()) - arg := ruleserver.SdkDatas{} + arg := structure.SdkDatas{} //paramFormat(msg, &arg) start := time.Now() m := paramFormat(msg, &arg) // 杩涜瑙勫垯澶勭悊鍒ゆ柇(鎵撲笂瑙勫垯鐨勬爣绛�) ruleserver.Judge(&arg, &m) // 鎶妔dkMessage浼犺繘鍘伙紝鏂逛究缂撳瓨鏁版嵁鏃舵嫾鍑轰竴涓猺esultMag // 鎶奱rg閲岀殑鎵撶殑鏍囩鎷垮嚭鏉ョ粰m鍐嶅皝瑁呬竴灞� - resultMsg := ruleserver.ResultMsg{SdkMessage: &m, RuleResult: arg.RuleResult} + resultMsg := structure.ResultMsg{SdkMessage: &m, RuleResult: arg.RuleResult} logger.Debug("瑙勫垯鍒ゆ柇瀹屾墍鐢ㄦ椂闂达細", time.Since(start)) // 灏嗘墦瀹屾爣绛剧殑鏁版嵁鎻掑叆鍒癊S insertdata.InsertToEs(resultMsg) logger.Debug("鎻掑叆瀹孍s鎵�鐢ㄦ椂闂达細", time.Since(start)) //浜嬩欢鎺ㄩ�� - go labelFilter.Judge(resultMsg) - //}(msg) + //go labelFilter.Judge(resultMsg) + }(msg) } } } @@ -104,9 +115,9 @@ // 灏嗗閮ㄤ紶杩涙潵鐨剅ect锛坱op,bottom,left,right锛夎浆鍖栦负鑷繁鍐呴儴鐨剅ect(left top width height) -func rectFormat(rcobj *protomsg.Rect) ruleserver.Rect { +func rectFormat(rcobj *protomsg.Rect) structure.Rect { //logger.Info("++++++++++++++++++++++++++++++鏀跺埌鐨剏olo鐨勫尯鍩熷潗鏍囷細",rcobj) - rect := ruleserver.Rect{} + rect := structure.Rect{} rect.X = float64(rcobj.Left) rect.Y = float64(rcobj.Top) rect.Width = float64(rcobj.Right - rcobj.Left) @@ -115,10 +126,10 @@ } // 灏嗗閮ㄤ紶杩涙潵鐨剆dk鏁版嵁鍖呰В鎴� SdkDatas -func paramFormat(msg []byte, args *ruleserver.SdkDatas) protomsg.SdkMessage { +func paramFormat(msg []byte, args *structure.SdkDatas) protomsg.SdkMessage { defer func() { if err := recover(); err != nil { - logger.Info("瑙e寘杩囩▼鐨勯敊璇�", err.(string)) + logger.Info("瑙e寘杩囩▼鐨勫紓甯告崟鑾�", err.(string)) } }() @@ -144,7 +155,7 @@ //logger.Info("----------------鐪嬬湅鏈夊嚑涓畻娉曪細",len(m.Tasklab.Sdkinfos)) for _, sdkinfo := range m.Tasklab.Sdkinfos { // yolo绠楁硶 if sdkinfo.Sdktype == "Yolo" { - arg := ruleserver.SdkData{} + arg := structure.SdkData{} arg.TaskId = m.Tasklab.Taskid arg.IpcId = sdkinfo.Ipcid arg.IsYolo = true @@ -172,7 +183,7 @@ for _, info := range yoloParam.Infos { if info.Typ == 0 { //logger.Debug("-------------yolo鐨勫潗鏍囨湁鍑犱釜",info.RcObj) - photoMap := ruleserver.PhotoMap{Rects: rectFormat(info.RcObj), Score: float64(info.Prob) * 100, IsYolo: true} + photoMap := structure.PhotoMap{Rects: rectFormat(info.RcObj), Score: float64(info.Prob) * 100, IsYolo: true,Id:info.ObjID} arg.Photo = append(arg.Photo, photoMap) yoloNum++ } @@ -185,7 +196,7 @@ } if sdkinfo.Sdktype == "FaceDetect" { // 浜鸿劯妫�娴� - arg := ruleserver.SdkData{} + arg := structure.SdkData{} arg.TaskId = m.Tasklab.Taskid arg.IpcId = sdkinfo.Ipcid arg.IsYolo = false @@ -210,7 +221,7 @@ logger.Info("--------------杩借釜涔嬪悗浜鸿劯鐨勪釜鏁帮細", len(faceParam.Faces)) for _, info := range faceParam.Faces { //logger.Info("_______________________________________________绗竴娆$湅鐩镐技鍊硷細",info.Pos.FAngle.Confidence*100) - photoMap := ruleserver.PhotoMap{Id: info.Pos.FaceID, Rects: rectFormat(info.Pos.RcFace), Score: float64(info.Pos.FAngle.Confidence * 100), IsYolo: false, ThftRes: *(info.Result), Feature: info.Feats} + photoMap := structure.PhotoMap{Id: info.Pos.FaceID, Rects: rectFormat(info.Pos.RcFace), Score: float64(info.Pos.FAngle.Confidence * 100), IsYolo: false, ThftRes: *(info.Result), Feature: info.Feats} arg.Photo = append(arg.Photo, photoMap) } args.Sdkdata = append(args.Sdkdata, &arg) -- Gitblit v1.8.0