退出时关闭所有数据源连接
This commit is contained in:
parent
9be07ca18b
commit
3643fb25eb
@ -40,5 +40,6 @@ func Main() {
|
||||
quit := make(chan os.Signal, 1)
|
||||
signal.Notify(quit, os.Interrupt)
|
||||
<-quit
|
||||
app.Shutdown()
|
||||
|
||||
defer app.Shutdown()
|
||||
}
|
||||
|
@ -64,7 +64,11 @@ func Shutdown() {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Log().Infof("关闭服务")
|
||||
fib.Exec(func() {
|
||||
database.Close()
|
||||
})
|
||||
|
||||
logger.Log().Info("关闭服务")
|
||||
timeout := 5 * time.Second
|
||||
err := app.ShutdownWithTimeout(timeout)
|
||||
if err != nil {
|
||||
|
@ -2,7 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"matrix-middle-service/cmd/service"
|
||||
_ "matrix-middle-service/pkg/database/mysql"
|
||||
_ "matrix-middle-service/pkg/database/driver/mysql"
|
||||
_ "matrix-middle-service/pkg/logger"
|
||||
)
|
||||
|
||||
|
@ -23,7 +23,6 @@ func Init(conf []interface{}) {
|
||||
for _, item := range conf {
|
||||
dst := config.DataSourcesType[any]{}
|
||||
_ = mapstructure.Decode(item, &dst)
|
||||
logger.Log().Infof("%+v", dst)
|
||||
|
||||
fn, ok := SupportDataSources[dst.Type]
|
||||
if !ok {
|
||||
@ -51,3 +50,10 @@ func Open() (err error) {
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func Close() {
|
||||
for _, driver := range drivers {
|
||||
_ = driver.Close()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -26,12 +26,12 @@ func init() {
|
||||
database.Register("mysql", func(c config.DataSourcesType[any]) database.DataBase {
|
||||
mc := &conf.Config{}
|
||||
_ = mapstructure.Decode(c.Config, &mc)
|
||||
logger.Log().Infof("%+v,%+v,%+v", c.Enable, mc.Name(), mc.DataSources)
|
||||
|
||||
if dbEngine != nil {
|
||||
_ = dbEngine.Close()
|
||||
}
|
||||
|
||||
logger.Log().Debug("[mysql] 数据源初始化")
|
||||
var err error
|
||||
dbEngine, err = xorm.NewEngineGroup("mysql", mc.DataSources)
|
||||
if err != nil {
|
||||
@ -53,10 +53,12 @@ type db struct {
|
||||
}
|
||||
|
||||
func (d *db) Close() error {
|
||||
logger.Log().Debug("[mysql] 关闭数据库连接")
|
||||
return d.db.Close()
|
||||
}
|
||||
|
||||
func (d *db) Open() (err error) {
|
||||
logger.Log().Debug("[mysql] 连接数据库")
|
||||
// 自动创建数据库
|
||||
for _, dsn := range d.config.DataSources {
|
||||
dbName := ParseSqlConnDBName(dsn)
|
||||
@ -69,8 +71,8 @@ func (d *db) Open() (err error) {
|
||||
|
||||
err = d.db.Ping()
|
||||
if err != nil {
|
||||
logger.Log().Fatal(err)
|
||||
logger.Log().Fatalf("[mysql] 数据库连接失败, %s", err)
|
||||
}
|
||||
|
||||
logger.Log().Debug("[mysql] 数据库连接成功")
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user