From 9d9cd1d3b93613071d1dffc1c82c4515d2a65af6 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 21 一月 2020 17:22:39 +0800
Subject: [PATCH] bug fixed  change real fetcher ip

---
 main.go |   79 +++++++++++++++++++++++++--------------
 1 files changed, 50 insertions(+), 29 deletions(-)

diff --git a/main.go b/main.go
index 777cf7c..b495dbe 100644
--- a/main.go
+++ b/main.go
@@ -3,7 +3,13 @@
 import (
 	"analysis/logo"
 	"analysis/util"
+	"fmt"
+	"os/exec"
+	"os/signal"
+	"runtime/debug"
 	"strconv"
+	"syscall"
+	"time"
 
 	"analysis/app/master"
 	"analysis/app/slave"
@@ -12,8 +18,6 @@
 	"flag"
 
 	"os"
-
-	"basic.com/valib/gogpu.git"
 	// "net/http"
 	// _ "net/http/pprof"
 )
@@ -36,25 +40,24 @@
 )
 
 func init() {
-	flag.StringVar(&role, "role", roleMaster, "run process role master/slave, default single")
-	flag.StringVar(&runType, "sdk", util.FeatAll, "run sdk type, face/facedetect/facecompare/yolo,etc.")
-	flag.StringVar(&id, "id", util.FakeSdkID, "sdk id as ipc label")
+	flag.StringVar(&role, "role", roleMaster, "杩涚▼鍚姩鏂瑰紡,master/slave")
+	flag.StringVar(&runType, "sdk", util.FeatAll, "杩涚▼杩愯鐨勭畻娉曠被鍨婩aceDetect/Yolo,etc.slave浣跨敤")
+	flag.StringVar(&id, "id", util.FakeSdkID, "杩涚▼杩愯绠楁硶鐨処D,slave浣跨敤")
 
-	flag.StringVar(&configPath, util.ConfigPath, "", "sdk config file path")
+	flag.StringVar(&configPath, util.ConfigPath, "", "杩涚▼杩愯绠楁硶鐨勫弬鏁伴厤缃枃浠惰矾寰�,master浠庤矾寰勮鍙栨枃浠�,slave浣跨敤鏂囦欢")
 
-	flag.BoolVar(&logit, util.LogIt, false, "use logger,default flase")
-	flag.BoolVar(&shm, util.SHM, false, "use shm for performance")
+	flag.BoolVar(&logit, util.LogIt, false, "鏄惁淇濆瓨鏃ュ織鏂囦欢,榛樿false")
+	flag.BoolVar(&shm, util.SHM, false, "鏄惁浣跨敤shared memory, 榛樿false, slave浣跨敤")
 
-	flag.IntVar(&gpu, util.GPU, -1, "gpu index")
+	flag.IntVar(&gpu, util.GPU, -1, "杩涚▼杩愯绠楁硶闇�瑕佺殑GPU Index")
 
 	// 鎸囧畾鑾峰彇閰嶇疆淇℃伅浠巗qlite,鏈夋渶楂樹紭鍏堢骇, master浣跨敤
-	flag.StringVar(&util.FSI.IP, util.FetchSrvIP, util.FSI.IP, "fetch server ip, like camera info")
-	flag.IntVar(&util.FSI.HTTPort, util.FetchSrvPort, util.FSI.HTTPort, "fetch server port")
-	flag.IntVar(&util.FSI.HBPort, util.FetchSrvHeartbeatPort, util.FSI.HBPort, "fetch server heartbeat port")
-	flag.IntVar(&util.FSI.DataPort, util.FetchSrvDataPort, util.FSI.DataPort, "fetch server data port")
+	flag.StringVar(&util.FSI.IP, util.FetchSrvIP, util.FSI.IP, "浠嶪P鑾峰彇闇�瑕佽繍琛岀殑SDK,master浣跨敤")
+	flag.IntVar(&util.FSI.HBPort, util.FetchSrvHeartbeatPort, util.FSI.HBPort, "鑾峰彇闇�瑕佽繍琛岀殑SDK鏈嶅姟鍣ㄧ殑蹇冭烦 Port,master浣跨敤")
+	flag.IntVar(&util.FSI.DataPort, util.FetchSrvDataPort, util.FSI.DataPort, "鑾峰彇闇�瑕佽繍琛岀殑SDK鏈嶅姟鍣ㄧ殑鏁版嵁 Port,master浣跨敤")
 
 	// 鎸囧畾鍙戦�佸埌ruleprocess鐨刬pc鍦板潃
-	flag.StringVar(&util.ToRuleIPC, util.RuleIPC, util.ToRuleIPC, "send data to ruleprocess ipc")
+	flag.StringVar(&util.ToRuleIPC, util.RuleIPC, util.ToRuleIPC, "灏嗙畻娉曡繍琛岀粨鏋滃彂閫佸埌瑙勫垯鏈嶅姟鍣ㄧ殑IPC鍦板潃,slave浣跨敤")
 }
 
 func runLogger() {
@@ -70,10 +73,9 @@
 }
 
 func setParamters() {
-	util.FillParams(util.FetchSrvIP, util.FSI.IP)
-	util.FillParams(util.FetchSrvPort, strconv.Itoa(util.FSI.HTTPort))
-	util.FillParams(util.FetchSrvHeartbeatPort, strconv.Itoa(util.FSI.HBPort))
-	util.FillParams(util.FetchSrvDataPort, strconv.Itoa(util.FSI.DataPort))
+	// util.FillParams(util.FetchSrvIP, util.FSI.IP)
+	// util.FillParams(util.FetchSrvHeartbeatPort, strconv.Itoa(util.FSI.HBPort))
+	// util.FillParams(util.FetchSrvDataPort, strconv.Itoa(util.FSI.DataPort))
 
 	util.FillParams(util.RuleIPC, util.ToRuleIPC)
 
@@ -87,12 +89,6 @@
 }
 
 func main() {
-
-	indices := gogpu.RankGPU()
-	if len(indices) == 0 {
-		logo.Errorln("there is no gpu for valid")
-		return
-	}
 
 	util.InitConfig()
 
@@ -113,18 +109,20 @@
 
 	ret := false
 	if role == roleMaster {
+		defer dump(util.LogFile + "_dump_" + time.Now().Format("20060102150405"))
 		setParamters()
-		ret = master.Run(ctx, configPath, "./libcomm.so")
+		ret = master.Run(ctx, "./libcomm.so", configPath)
 
 	} else if role == roleSlave {
 		ret = slave.Run(ctx, configPath, runType, id, gpu, shm)
+	} else if role == "test" {
+		ret = slave.TwoPluginConflict("./libcomm.so", "./zconf/Yolo.json")
 	}
 
 	if ret {
-		// c := make(chan os.Signal, 1)
-		// signal.Notify(c, os.Interrupt, os.Kill, unix.SIGTERM)
-		// <-c
-		select {}
+		c := make(chan os.Signal, 1)
+		signal.Notify(c, os.Interrupt, os.Kill, syscall.SIGTERM)
+		<-c
 	}
 
 	cancel()
@@ -143,3 +141,26 @@
 // viper.AddConfigPath("./")
 
 // envString := ""
+
+func dump(dumpFile string) {
+	dumpErr := recover()
+	if dumpErr == nil {
+		return
+	}
+	f, err := os.Create(dumpFile)
+	if err != nil {
+		return
+	}
+	f.WriteString(fmt.Sprintf("panic:\r\n%v", dumpErr))
+	f.WriteString("\r\n\nstack:\r\n")
+	f.WriteString(string(debug.Stack()))
+	f.Close()
+
+	//////////////////////////////////////////////
+	// restart master
+
+	cmd := exec.Command(os.Args[0], os.Args[1:]...)
+	cmd.Stdout = os.Stdout
+	cmd.Stderr = os.Stderr
+	cmd.Start()
+}

--
Gitblit v1.8.0