package moo import ( "golang.org/x/sync/errgroup" "log" _ "product/backend/moo/config" _ "product/backend/moo/db" "product/backend/moo/server" ) func InitApplication() (*Application, error) { // 加载server servers, err := server.LoadServer() if err != nil { log.Fatal(err) } app := &Application{ servers: servers, } return app, nil } // Application App is an application components lifecycle manager. type Application struct { servers []server.Server } // Run 启动应用 func (app *Application) Run() { var eg errgroup.Group for _, a := range app.servers { eg.Go(func() error { return a.Start() }) } if err := eg.Wait(); err != nil { log.Fatal(err) } }