62 lines
1.2 KiB
Go
62 lines
1.2 KiB
Go
package module
|
|
|
|
import (
|
|
"git.hlsq.asia/mmorpg/service-common/config"
|
|
"git.hlsq.asia/mmorpg/service-common/db/etcd"
|
|
"git.hlsq.asia/mmorpg/service-common/db/kafka"
|
|
"git.hlsq.asia/mmorpg/service-common/db/mysql"
|
|
"git.hlsq.asia/mmorpg/service-common/db/redis"
|
|
"git.hlsq.asia/mmorpg/service-common/log"
|
|
)
|
|
|
|
// DB 数据库模块
|
|
type DB struct {
|
|
DefaultModule
|
|
Cfg *config.DBConfig
|
|
AppName string
|
|
}
|
|
|
|
func (m *DB) Init() error {
|
|
// ETCD
|
|
if m.Cfg.Etcd != nil {
|
|
if err := etcd.Init(m.Cfg.Etcd); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// MYSQL
|
|
if m.Cfg.MySQL != nil {
|
|
if err := mysql.Init(m.Cfg.MySQL); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// REDIS
|
|
if m.Cfg.Redis != nil {
|
|
if err := redis.Init(m.Cfg.Redis); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
// KAFKA
|
|
if m.Cfg.Kafka != nil {
|
|
if err := kafka.Init(m.Cfg.Kafka, m.AppName); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m *DB) Stop() error {
|
|
if err := etcd.Close(); err != nil {
|
|
log.Errorf("close etcd failed: %v", err)
|
|
}
|
|
if err := mysql.Close(); err != nil {
|
|
log.Errorf("close mysql failed: %v", err)
|
|
}
|
|
if err := redis.Close(); err != nil {
|
|
log.Errorf("close redis failed: %v", err)
|
|
}
|
|
if err := kafka.Close(); err != nil {
|
|
log.Errorf("close kafka failed: %v", err)
|
|
}
|
|
return nil
|
|
}
|