package main import ( "log" "strconv" "toutoukan/controllers/search" "toutoukan/init/bleveInit" "toutoukan/init/config" "toutoukan/init/databaseInit" "toutoukan/init/redisInit" "toutoukan/router" "github.com/sirupsen/logrus" ) func main() { logrus.SetFormatter(&logrus.TextFormatter{ ForceColors: true, FullTimestamp: true, // 启用完整时间戳 TimestampFormat: "2006-01-02 15:04:05", // 自定义绝对时间格式 DisableTimestamp: false, // false=显示时间戳,true=去除时间戳 }) logrus.Info("------启动-----") bleveInit.InitIndex() databaseInit.DbInit() redisInit.RedisInit() if err := config.Goinit(); err != nil { panic(err) } r := router.SetupRouter() err := r.Run(":" + strconv.Itoa(config.Conf.Port)) if err != nil { return } defer func() { sqlDB, err := databaseInit.UserDB.DB() if err != nil { // 处理获取失败的情况 log.Printf("获取底层数据库连接失败: %v", err) return } // 2. 调用 Close() 关闭连接池 if err := sqlDB.Close(); err != nil { log.Printf("关闭数据库连接池失败: %v", err) } else { log.Println("数据库连接池已成功关闭") } }() defer redisInit.RedisClient.Close() defer search.CloseIndex() }