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 }