| | |
| | | package main |
| | | |
| | | import ( |
| | | "fmt" |
| | | "log" |
| | | "net/http" |
| | | "flag" |
| | | _ "net/http/pprof" |
| | | |
| | | "github.com/long/test/camera" |
| | | "github.com/long/test/sdk" |
| | | "github.com/long/test/tasktag" |
| | | "github.com/long/test/util" |
| | | // "github.com/long/test/camera" |
| | | // "github.com/long/test/sdk" |
| | | // "github.com/long/test/tasktag" |
| | | "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(){ |
| | | 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" |
| | | } |
| | | |
| | | // 日志初始化 |
| | | 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 !") |
| | | |
| | | flag.BoolVar(&useShm, "shm", false, "use shm for performance") |
| | | } |
| | | |
| | | func main() { |
| | | flag.Parse() |
| | | time.Sleep(time.Second) |
| | | |
| | | if useShm{ |
| | | logger.Info("USE SHARE MEMORY") |
| | | }else{ |
| | | logger.Info("USE PIPE") |
| | | } |
| | | // pprof 用于分析性能 |
| | | go func() { |
| | | log.Println(http.ListenAndServe("0.0.0.0:6060", nil)) |
| | | logger.Info(http.ListenAndServe("0.0.0.0:6061", nil)) |
| | | }() |
| | | |
| | | go util.Init(initchan) |
| | | |
| | | fmt.Println("init ok !!!!, start sdk, task, camera init process ....", <-initchan) |
| | | fmt.Println() |
| | | fmt.Println() |
| | | fmt.Println() |
| | | fmt.Println() |
| | | sdk.Init() // 获取所有算法id ,建立 sdk 主题, 建立sdk server(send, recv 运行) |
| | | tasktag.Init() // 获取所有任务,建立任务标签, 在数据进入时, 打标签 |
| | | camera.Init() //获取cid, taskid, sdkid ,关系 |
| | | 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 {} |
| | | } |