zhangmeng
2019-12-17 3fc4fa8f8bf65030ee0969d73f958b11d90b7daf
main.go
@@ -5,31 +5,65 @@
    "flag"
   _ "net/http/pprof"
    "time"
   "taskpubsub/camera"
   "taskpubsub/sdk"
   "taskpubsub/tasktag"
   "taskpubsub/util"
   "basic.com/valib/logger.git"
   "github.com/spf13/viper"
)
var initchan = make(chan bool)
var useShm bool
const (
   configFilePath  = "/opt/vasystem/config/"
   configFileType = "yaml"
   LOGBASEPATH = "/data/disk1/valog/taskpubsub.log"
)
var envirment = flag.String("e", "pro", "")
func init(){
    var logFile = "./taskpubsub.log"
    var logSaveDays    =    15
   viper.SetConfigType(configFileType)
   viper.SetConfigName(*envirment)
   viper.AddConfigPath(configFilePath)
   viper.AddConfigPath("./")
   err := viper.ReadInConfig()
   if err != nil {
      logger.Error("viper.ReadInConfig() Error")
      //panic(err)
   }
    var logFile = LOGBASEPATH
   if viper.GetString("LogBasePath") != "" {
      logFile = viper.GetString("LogBasePath") + "/taskpubsub.log"
   }
    // 日志初始化
    logger.Config(logFile, logger.InfoLevel)
   if viper.IsSet("LogLevel") &&
      viper.GetInt("LogLevel") >= logger.PanicLevel &&
      viper.GetInt("LogLevel") <= logger.DebugLevel {
      logger.Config(logFile, viper.GetInt("LogLevel"))
   }else{
      logger.Config(logFile, logger.DebugLevel)
   }
   var logSaveDays    =    15
    logger.SetSaveDays(logSaveDays)
    logger.Info("loginit success !")
   logger.Info("loginit success !")
   flag.BoolVar(&useShm, "shm", false, "use shm for performance")
}     
        
func     main() {
func main() {
    flag.Parse()
    time.Sleep(time.Second)
   if useShm{
      logger.Info("USE SHARE MEMORY")
   }else{
      logger.Info("USE PIPE")
   }
   // pprof 用于分析性能
   go func() {
      logger.Info(http.ListenAndServe("0.0.0.0:6061", nil))
@@ -38,8 +72,8 @@
   go util.Init(initchan)
   logger.Info("init ok !!!!, start sdk, task, camera init process ....", <-initchan)
   sdk.Init()        //  获取所有算法id ,建立 sdk 主题, 建立sdk server(send, recv 运行)
   sdk.Init(useShm)        //  获取所有算法id ,建立 sdk 主题, 建立sdk server(send, recv 运行)
   tasktag.Init()   // 获取所有任务,建立任务标签, 在数据进入时, 打标签
   camera.Init()   //获取cid, taskid, sdkid ,关系
   camera.Init(useShm)   //获取cid, taskid, sdkid ,关系
   select {}
}