mirror of
https://gitee.com/dromara/mayfly-go
synced 2025-11-03 07:50:25 +08:00
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package starter
|
||
|
||
import (
|
||
"context"
|
||
"mayfly-go/initialize"
|
||
"mayfly-go/migration"
|
||
"mayfly-go/pkg/config"
|
||
"mayfly-go/pkg/global"
|
||
"mayfly-go/pkg/logx"
|
||
"mayfly-go/pkg/validatorx"
|
||
"os"
|
||
"os/signal"
|
||
"syscall"
|
||
)
|
||
|
||
func RunWebServer() {
|
||
ctx, cancel := context.WithCancel(context.Background())
|
||
defer cancel()
|
||
|
||
go func() {
|
||
quit := make(chan os.Signal, 1)
|
||
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
|
||
<-quit
|
||
cancel()
|
||
}()
|
||
|
||
// 初始化config.yml配置文件映射信息或使用环境变量。并初始化系统日志相关配置
|
||
config.Init()
|
||
|
||
// 打印banner
|
||
printBanner()
|
||
|
||
// 初始化并赋值数据库全局变量
|
||
initDb()
|
||
|
||
// 有配置redis信息,则初始化redis。多台机器部署需要使用redis存储验证码、权限、公私钥等
|
||
initRedis()
|
||
|
||
// 数据库升级操作
|
||
if err := migration.RunMigrations(global.Db); err != nil {
|
||
logx.Panicf("db migration failed: %v", err)
|
||
}
|
||
|
||
// 参数校验器初始化、如错误提示中文转译等
|
||
validatorx.Init()
|
||
|
||
// 初始化其他需要启动时运行的方法
|
||
initialize.InitOther()
|
||
|
||
// 运行web服务
|
||
runWebServer(ctx)
|
||
}
|