package main
|
|
import (
|
"net/http"
|
"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(){
|
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() {
|
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 {}
|
}
|