多进程初始化完善

This commit is contained in:
Shikong 2022-10-04 03:24:13 +08:00
parent f14977dafa
commit 856847a9fe
2 changed files with 23 additions and 6 deletions

27
app.go
View File

@ -19,7 +19,10 @@ func loadApp() {
if err != nil { if err != nil {
logger.Log.Fatalf("配置文件解析失败: %s", err) logger.Log.Fatalf("配置文件解析失败: %s", err)
} }
logger.Log.Infof("\n%#v", global.Config)
mainAppExec(func() {
logger.Log.Infof("\n%#v", global.Config)
})
reloadRedis(global.Config) reloadRedis(global.Config)
reloadDataSources(global.Config) reloadDataSources(global.Config)
@ -48,7 +51,10 @@ func reloadRedis(c *config.BasicConfig) {
if err != nil { if err != nil {
logger.Log.Fatalln("[x] [Redis] 连接失败: %s", err) logger.Log.Fatalln("[x] [Redis] 连接失败: %s", err)
} }
logger.Log.Infoln("[√] [Redis] 连接成功")
mainAppExec(func() {
logger.Log.Infoln("[√] [Redis] 连接成功")
})
global.Redis = r global.Redis = r
} }
@ -63,11 +69,13 @@ func reloadDataSources(c *config.BasicConfig) {
logger.Log.Fatalf("[x] [数据源] 致命错误: %s", err) logger.Log.Fatalf("[x] [数据源] 致命错误: %s", err)
} }
logger.Log.Infoln("[√] [数据源] 初始化完成") mainAppExec(func() {
logger.Log.Infoln("[√] [数据源] 初始化完成")
})
global.DataSources = connGroup global.DataSources = connGroup
if c.Mysql.AutoSync { if c.Mysql.AutoSync && !fiber.IsChild() {
global.SyncModelToDataSource() global.SyncModelToDataSource()
} }
} }
@ -107,13 +115,22 @@ func reloadApp(c *config.BasicConfig) *fiber.App {
controller.ErrorHandler(app) controller.ErrorHandler(app)
app.Hooks().OnListen(func() error { app.Hooks().OnListen(func() error {
logger.Log.Infoln("[√] [服务启动完成]") mainAppExec(func() {
logger.Log.Infoln("[√] [服务启动完成]")
})
return nil return nil
}) })
return app return app
} }
// mainAppExec 仅主进程执行 忽略子进程
func mainAppExec(fn func()) {
if !fiber.IsChild() {
fn()
}
}
// routes // routes
// @Summary 获取所有路由 // @Summary 获取所有路由
// @Description 获取所有路由信息 // @Description 获取所有路由信息

View File

@ -2,7 +2,7 @@ server:
# 监听地址 :3000 或 127.0.0.1:3000 # 监听地址 :3000 或 127.0.0.1:3000
addr: ":3000" addr: ":3000"
# 启用多进程 # 启用多进程
preFork: false preFork: true
# 路由大小写严格 # 路由大小写严格
caseSensitive: true caseSensitive: true
# 严格路由模式 # 严格路由模式