2022-08-10 19:46:17 +08:00
|
|
|
|
package starter
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2023-12-27 22:59:20 +08:00
|
|
|
|
"context"
|
2023-07-21 17:07:04 +08:00
|
|
|
|
"mayfly-go/initialize"
|
2023-07-22 20:51:46 +08:00
|
|
|
|
"mayfly-go/migrations"
|
2022-08-10 19:46:17 +08:00
|
|
|
|
"mayfly-go/pkg/config"
|
2023-07-20 20:34:05 +08:00
|
|
|
|
"mayfly-go/pkg/global"
|
2023-09-02 17:24:18 +08:00
|
|
|
|
"mayfly-go/pkg/logx"
|
2023-07-31 17:34:32 +08:00
|
|
|
|
"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()
|
|
|
|
|
|
}()
|
|
|
|
|
|
|
2023-09-02 17:24:18 +08:00
|
|
|
|
// 初始化config.yml配置文件映射信息或使用环境变量。并初始化系统日志相关配置
|
2022-08-10 19:46:17 +08:00
|
|
|
|
config.Init()
|
2023-07-21 17:07:04 +08:00
|
|
|
|
|
2022-08-10 19:46:17 +08:00
|
|
|
|
// 打印banner
|
|
|
|
|
|
printBanner()
|
2023-07-21 17:07:04 +08:00
|
|
|
|
|
2022-08-10 19:46:17 +08:00
|
|
|
|
// 初始化并赋值数据库全局变量
|
|
|
|
|
|
initDb()
|
2023-07-21 17:07:04 +08:00
|
|
|
|
|
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 := migrations.RunMigrations(global.Db); err != nil {
|
2023-09-02 17:24:18 +08:00
|
|
|
|
logx.Panicf("数据库升级失败: %v", err)
|
2023-07-20 20:34:05 +08:00
|
|
|
|
}
|
2023-07-21 17:07:04 +08:00
|
|
|
|
|
2023-07-31 17:34:32 +08:00
|
|
|
|
// 参数校验器初始化、如错误提示中文转译等
|
|
|
|
|
|
validatorx.Init()
|
|
|
|
|
|
|
2023-07-21 17:07:04 +08:00
|
|
|
|
// 初始化其他需要启动时运行的方法
|
|
|
|
|
|
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
|
|
|
|
}
|