代码拉取完成,页面将自动刷新
同步操作将从 张奇峰/GinSkeleton 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package bootstrap
import (
_ "goskeleton/app/core/destroy" // 监听程序退出信号,用于资源的释放
"goskeleton/app/global/my_errors"
"goskeleton/app/global/variable"
"goskeleton/app/http/validator/common/register_validator"
"goskeleton/app/service/sys_log_hook"
"goskeleton/app/utils/websocket/core"
"goskeleton/app/utils/yml_config"
"goskeleton/app/utils/zap_factory"
"log"
"os"
)
// 检查项目必须的非编译目录是否存在,避免编译后调用的时候缺失相关目录
func checkRequiredFolders() {
//1.检查配置文件是否存在
if _, err := os.Stat(variable.BasePath + "/config/config.yml"); err != nil {
log.Fatal(my_errors.ErrorsConfigYamlNotExists + err.Error())
}
//2.检查public目录是否存在
if _, err := os.Stat(variable.BasePath + "/public/"); err != nil {
log.Fatal(my_errors.ErrorsPublicNotExists + err.Error())
}
//3.检查Storage/logs 目录是否存在
if _, err := os.Stat(variable.BasePath + "/storage/logs/"); err != nil {
log.Fatal(my_errors.ErrorsStorageLogsNotExists + err.Error())
}
}
func init() {
// 1. 初始化 项目根路径,参见 variable 常量包,相关路径:app\global\variable\variable.go
//2.检查配置文件以及日志目录等非编译性的必要条件
checkRequiredFolders()
// 3.初始化全局日志句柄,并载入日志钩子处理函数
variable.ZapLog = zap_factory.CreateZapFactory(sys_log_hook.ZapLogHandler)
//4.初始化表单参数验证器,注册在容器
register_validator.RegisterValidator()
ymlConf := yml_config.CreateYamlFactory()
// 5.启动针对配置文件变化的监听
ymlConf.ConfigFileChangeListen()
// 6.websocket Hub中心启动
if ymlConf.GetInt("Websocket.Start") == 1 {
// websocket 管理中心hub全局初始化一份
variable.WebsocketHub = core.CreateHubFactory()
if Wh, ok := variable.WebsocketHub.(*core.Hub); ok {
go Wh.Run()
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。