feat 链路追踪
This commit is contained in:
63
module/db.go
Normal file
63
module/db.go
Normal file
@@ -0,0 +1,63 @@
|
||||
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/mysql"
|
||||
"git.hlsq.asia/mmorpg/service-common/db/redis"
|
||||
"git.hlsq.asia/mmorpg/service-common/log"
|
||||
)
|
||||
|
||||
// DB 数据库模块
|
||||
type DB struct {
|
||||
cfg *config.DBConfig
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *DB) Start() error {
|
||||
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)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *DB) Bind(data ...any) Module {
|
||||
if data == nil || len(data) == 0 {
|
||||
return m
|
||||
}
|
||||
if cfg, ok := data[0].(*config.DBConfig); ok {
|
||||
m.cfg = cfg
|
||||
}
|
||||
return m
|
||||
}
|
||||
Reference in New Issue
Block a user