123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package pairec
- import (
- "fmt"
- "net/http"
- "os"
- "sync"
- "time"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/log"
- "gitlab.alibaba-inc.com/pai_biz_arch/pairec/recconf"
- )
- var (
- PairecApp *App
- )
- func init() {
- PairecApp = NewApp()
- }
- type App struct {
- Handlers *ControllerRegister
- Server *http.Server
- }
- func NewApp() *App {
- cr := NewControllerRegister()
- app := &App{Handlers: cr, Server: &http.Server{}}
- return app
- }
- func (app *App) Run() {
- mode := os.Getenv("RUN_MODE")
- if mode == "COMMAND" {
- return
- }
- addr := fmt.Sprintf("%s:%d", recconf.Config.ListenConf.HttpAddr, recconf.Config.ListenConf.HttpPort)
- app.Server.Handler = app.Handlers
- app.Server.Addr = addr
- app.Server.ReadTimeout = 30 * time.Second
- app.Server.WriteTimeout = 30 * time.Second
- app.Server.MaxHeaderBytes = 1 << 20
- wg := sync.WaitGroup{}
- wg.Add(1)
- go func() {
- defer wg.Done()
- if err := app.Server.ListenAndServe(); err != http.ErrServerClosed {
- log.Error(fmt.Sprintf("server stop, err=%v", err))
- }
- }()
- fmt.Println("server start")
- wg.Wait()
- log.Flush()
- }
|