Files
mayfly-go/server/pkg/starter/run.go

53 lines
1.1 KiB
Go
Raw Normal View History

2022-08-10 19:46:17 +08:00
package starter
import (
2023-12-27 22:59:20 +08:00
"context"
"mayfly-go/initialize"
"mayfly-go/migration"
2022-08-10 19:46:17 +08:00
"mayfly-go/pkg/config"
2023-07-20 20:34:05 +08:00
"mayfly-go/pkg/global"
"mayfly-go/pkg/logx"
"mayfly-go/pkg/validatorx"
2023-12-27 22:59:20 +08:00
"os"
"os/signal"
"syscall"
2022-08-10 19:46:17 +08:00
)
func RunWebServer() {
2023-12-27 22:59:20 +08:00
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配置文件映射信息或使用环境变量。并初始化系统日志相关配置
2022-08-10 19:46:17 +08:00
config.Init()
2022-08-10 19:46:17 +08:00
// 打印banner
printBanner()
2022-08-10 19:46:17 +08:00
// 初始化并赋值数据库全局变量
initDb()
2022-12-26 20:53:07 +08:00
// 有配置redis信息则初始化redis。多台机器部署需要使用redis存储验证码、权限、公私钥等
initRedis()
2023-07-22 20:51:46 +08:00
2023-07-20 20:34:05 +08:00
// 数据库升级操作
if err := migration.RunMigrations(global.Db); err != nil {
logx.Panicf("db migration failed: %v", err)
2023-07-20 20:34:05 +08:00
}
// 参数校验器初始化、如错误提示中文转译等
validatorx.Init()
// 初始化其他需要启动时运行的方法
initialize.InitOther()
2022-08-10 19:46:17 +08:00
// 运行web服务
2023-12-27 22:59:20 +08:00
runWebServer(ctx)
2022-08-10 19:46:17 +08:00
}