You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
694 B

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)
}
}