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 {}
|
}
|