func main() { var ( ch chan bool = make(chan bool) confFile string httpPort int help bool newApp *core.MainApp ) flag.IntVar(&httpPort, "port", 14280, "web server port") flag.BoolVar(&help, "help", false, "command usage") flag.StringVar(&confFile, "conf", "app.conf", "") flag.Parse() if help { flag.Usage() return } log.SetOutput(os.Stdout) log.SetFlags(log.LstdFlags | log.Ltime | log.Ldate | log.Lshortfile) runtime.GOMAXPROCS(runtime.NumCPU()) newApp = core.NewMainApp(confFile) go fix.SignalNotify(ch) go pub.Listen(ch, newApp, fmt.Sprintf(":%d", httpPort)) <-ch }
func main() { var ( ch chan bool = make(chan bool) confFile string httpPort int restPort int debug bool trace bool runDaemon bool // 运行daemon help bool newApp *core.MainApp ) flag.IntVar(&httpPort, "port", 14190, "web server port") flag.IntVar(&restPort, "restport", 14191, "rest api port") flag.BoolVar(&debug, "debug", false, "enable debug") flag.BoolVar(&trace, "trace", false, "enable trace") flag.BoolVar(&help, "help", false, "command usage") flag.StringVar(&confFile, "conf", "app.conf", "") flag.BoolVar(&runDaemon, "d", false, "run daemon") flag.Parse() if help { flag.Usage() return } log.SetOutput(os.Stdout) log.SetFlags(log.LstdFlags | log.Ltime | log.Ldate | log.Lshortfile) runtime.GOMAXPROCS(runtime.NumCPU()) newApp = core.NewMainApp(confFile) if !newApp.Init(debug, trace) { os.Exit(1) } fix.CustomFix() go fix.SignalNotify(ch) if v := newApp.Config().GetInt("server_port"); v != 0 { httpPort = v } if v := newApp.Config().GetInt("api_service_port"); v != 0 { restPort = v } gof.CurrentApp = newApp dps.Init(newApp) cache.Initialize(storage.NewRedisStorage(newApp.Redis())) session.Set(newApp.Storage(), "") var booted bool if runDaemon { go daemon.Run(newApp) } go app.Run(ch, newApp, fmt.Sprintf(":%d", httpPort)) //运行HTTP go restapi.Run(newApp, restPort) // 运行REST API if booted { <-ch } os.Exit(1) // 退出 }