package main import ( "net/http" "flag" _ "net/http/pprof" "time" "fmt" "taskpubsub/camera" "taskpubsub/sdk" "taskpubsub/tasktag" "taskpubsub/util" "taskpubsub/logger" ) var initchan = make(chan bool) var useShm bool func init(){ var logFile = "./taskpubsub.log" var logSaveDays = 15 // 日志初始化 logger.Config(logFile, logger.InfoLevel) logger.SetSaveDays(logSaveDays) logger.Info("loginit success !") flag.BoolVar(&useShm, "shm", false, "use shm for performance") } func main() { flag.Parse() time.Sleep(time.Second) if useShm{ logger.Info("USE SHARE MEMORY") fmt.Println("USE SHARE MEMORY") }else{ logger.Info("USE PIPE") fmt.Println("USE PIPE") } // pprof 用于分析性能 go func() { logger.Info(http.ListenAndServe("0.0.0.0:6061", nil)) }() go util.Init(initchan) logger.Info("init ok !!!!, start sdk, task, camera init process ....", <-initchan) sdk.Init(useShm) // 获取所有算法id ,建立 sdk 主题, 建立sdk server(send, recv 运行) tasktag.Init() // 获取所有任务,建立任务标签, 在数据进入时, 打标签 camera.Init(useShm) //获取cid, taskid, sdkid ,关系 select {} }