| | |
| | | package main |
| | | |
| | | import ( |
| | | "basic.com/valib/bhomeclient.git" |
| | | "basic.com/valib/bhomedbapi.git" |
| | | "basic.com/valib/logger.git" |
| | | "basic.com/valib/version.git" |
| | | "context" |
| | | "flag" |
| | | "net/http" |
| | |
| | | "vamicro/appcenter-service/service" |
| | | "vamicro/config" |
| | | versionControlS "vamicro/version-control/service" |
| | | |
| | | "basic.com/valib/bhomeclient.git" |
| | | "basic.com/valib/bhomedbapi.git" |
| | | "basic.com/valib/logger.git" |
| | | vaversion "basic.com/valib/version.git" |
| | | ) |
| | | |
| | | var ( |
| | | procName = service.ProcName |
| | | proc = &bhomeclient.ProcInfo{ |
| | | proc = &bhomeclient.ProcInfo{ |
| | | Name: procName, //进程名称 |
| | | ID: procName, //进程id |
| | | Info: "", //进程的描述信息,用于区分同一进程名称下多个进程 |
| | | ID: procName, //进程id |
| | | Info: "", //进程的描述信息,用于区分同一进程名称下多个进程 |
| | | } |
| | | env = flag.String("e", "pro", "") |
| | | ) |
| | |
| | | |
| | | config.Init(*env) |
| | | // 日志初始化 |
| | | var logFile = config.LogConf.Path + "vamicro-"+procName+".log" |
| | | var logFile = config.LogConf.Path + "vamicro-" + procName + ".log" |
| | | logger.InitLogger(logFile, config.LogConf.Level, config.LogConf.MaxSize, config.LogConf.MaxBackups, config.LogConf.MaxAge) |
| | | logger.Info("log init success !") |
| | | } |
| | | |
| | | func main(){ |
| | | func main() { |
| | | models.Init() |
| | | defer models.CloseDB() |
| | | |
| | | ctx, cancel := context.WithCancel(context.Background()) |
| | | fm,pubTopics := initFuncMap() |
| | | var reg = &bhomeclient.RegisterInfo { |
| | | Proc: *proc, |
| | | Channel: nil, |
| | | fm, pubTopics := initFuncMap() |
| | | var reg = &bhomeclient.RegisterInfo{ |
| | | Proc: *proc, |
| | | Channel: nil, |
| | | PubTopic: pubTopics, |
| | | SubTopic: []string{versionControlS.SysUpdateConfigTopic}, |
| | | SubTopic: []string{versionControlS.SysUpdateConfigTopic}, |
| | | } |
| | | |
| | | q := make(chan os.Signal, 1) |
| | | signal.Notify(q, os.Interrupt, os.Kill, syscall.SIGTERM) |
| | | |
| | | ms, err := bhomeclient.NewMicroNode(ctx, q, config.Server.AnalyServerId, reg, logger.Debug) |
| | | if err !=nil { |
| | | if err != nil { |
| | | return |
| | | } |
| | | |
| | |
| | | go ms.StartServer(fm) |
| | | go handleSubMsg(ctx, ms) |
| | | go service.SelfUpdateStart(ctx) //自动更新 |
| | | go service.NoticeTick(ctx)//更新提醒 |
| | | go service.NoticeTick(ctx) //更新提醒 |
| | | // pprof 用于分析性能 |
| | | go func() { |
| | | logger.Info(http.ListenAndServe("0.0.0.0:7073", nil)) |
| | |
| | | } |
| | | |
| | | const urlPrefix = "/data/api-v" |
| | | func initFuncMap() (map[string]bhomeclient.MicroFunc,[]string) { |
| | | |
| | | func initFuncMap() (map[string]bhomeclient.MicroFunc, []string) { |
| | | funcMap := make(map[string]bhomeclient.MicroFunc) |
| | | sc := new(controllers.SdkController) |
| | | sa := new(controllers.SdkArgController) |
| | |
| | | funcMap[urlPrefix+"/app/upgrade/notice/delay"] = ac.DelayNotice |
| | | |
| | | var pubTopics []string |
| | | for key,_ := range funcMap { |
| | | for key, _ := range funcMap { |
| | | pubTopics = append(pubTopics, key) |
| | | } |
| | | return funcMap, pubTopics |
| | |
| | | service.PersistentWrapper(string(msg.Topic), msg.Data) |
| | | } |
| | | } |
| | | } |
| | | } |