chenshijun
2019-09-11 a45d5a83c5a283444a407d648432e9dd08f89478
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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/"
    configFileName = "config"
    configFileType = "json"
    LOGBASEPATH = "/data/disk1/valog/taskpubsub.log"
)
 
func init(){
    viper.SetConfigType(configFileType)
    viper.SetConfigName(configFileName)
    viper.AddConfigPath(configFilePath)
    viper.AddConfigPath("./")
    err := viper.ReadInConfig()
    if err != nil {
        panic(err)
    }
 
    var logFile = LOGBASEPATH
    if viper.GetString("LogBasePath") != "" {
        logFile = viper.GetString("LogBasePath") + "/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")
    }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 {}
}