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