From 0ea48af89227bc4ca8f5782644ec09401aa7e251 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 26 Nov 2021 14:34:00 +0800 Subject: [PATCH] panic output detail info --- pkg/common/db/model.go | 12 +++++++++++- pkg/common/db/mysql.go | 12 +++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index becdd71b6..e2a1fb511 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -2,6 +2,7 @@ package db import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" "github.com/garyburd/redigo/redis" "gopkg.in/mgo.v2" "time" @@ -20,6 +21,8 @@ func key(dbAddress, dbName string) string { } func init() { + var mgoSession *mgo.Session + var err1 error //mysql init initMysqlDB() // mongo init @@ -35,7 +38,14 @@ func init() { } mgoSession, err := mgo.DialWithInfo(mgoDailInfo) if err != nil { - panic(err.Error()) + log.NewError("mgo init err", err.Error(), mgoDailInfo) + } + if err != nil { + time.Sleep(time.Duration(30) * time.Second) + mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) + if err1 != nil { + panic(err1.Error()) + } } DB.mgoSession = mgoSession DB.mgoSession.SetMode(mgo.Monotonic, true) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 865571b7f..0740518ac 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -19,13 +19,19 @@ func initMysqlDB() { //When there is no open IM database, connect to the mysql built-in database to create openIM database dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql") - + var db *gorm.DB + var err1 error db, err := gorm.Open("mysql", dsn) if err != nil { log.Error("", "", dsn) - panic(err.Error()) } - + if err != nil { + time.Sleep(time.Duration(30) * time.Second) + db, err1 = gorm.Open("mysql", dsn) + if err1 != nil { + panic(err1.Error()) + } + } //Check the database and table during initialization sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName) err = db.Exec(sql).Error