diff --git a/app.go b/app.go index a4376ef..7585044 100644 --- a/app.go +++ b/app.go @@ -19,7 +19,10 @@ func loadApp() { if err != nil { logger.Log.Fatalf("配置文件解析失败: %s", err) } - logger.Log.Infof("\n%#v", global.Config) + + mainAppExec(func() { + logger.Log.Infof("\n%#v", global.Config) + }) reloadRedis(global.Config) reloadDataSources(global.Config) @@ -48,7 +51,10 @@ func reloadRedis(c *config.BasicConfig) { if err != nil { logger.Log.Fatalln("[x] [Redis] 连接失败: %s", err) } - logger.Log.Infoln("[√] [Redis] 连接成功") + + mainAppExec(func() { + logger.Log.Infoln("[√] [Redis] 连接成功") + }) global.Redis = r } @@ -63,11 +69,13 @@ func reloadDataSources(c *config.BasicConfig) { logger.Log.Fatalf("[x] [数据源] 致命错误: %s", err) } - logger.Log.Infoln("[√] [数据源] 初始化完成") + mainAppExec(func() { + logger.Log.Infoln("[√] [数据源] 初始化完成") + }) global.DataSources = connGroup - if c.Mysql.AutoSync { + if c.Mysql.AutoSync && !fiber.IsChild() { global.SyncModelToDataSource() } } @@ -107,13 +115,22 @@ func reloadApp(c *config.BasicConfig) *fiber.App { controller.ErrorHandler(app) app.Hooks().OnListen(func() error { - logger.Log.Infoln("[√] [服务启动完成]") + mainAppExec(func() { + logger.Log.Infoln("[√] [服务启动完成]") + }) return nil }) return app } +// mainAppExec 仅主进程执行 忽略子进程 +func mainAppExec(fn func()) { + if !fiber.IsChild() { + fn() + } +} + // routes // @Summary 获取所有路由 // @Description 获取所有路由信息 diff --git a/config.yaml b/config.yaml index 7606a77..c4940bd 100644 --- a/config.yaml +++ b/config.yaml @@ -2,7 +2,7 @@ server: # 监听地址 :3000 或 127.0.0.1:3000 addr: ":3000" # 启用多进程 - preFork: false + preFork: true # 路由大小写严格 caseSensitive: true # 严格路由模式