印度包网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.3 KiB

1 year ago
package db
import (
"server/config"
edb "server/db/es"
mdb "server/db/mysql"
rdb "server/db/redis"
"github.com/liangdas/mqant/log"
)
var (
redisClient *rdb.RedisClient
esClient *edb.EsClient
mysqlClient *mdb.MysqlClient
)
// InitDB 初始化db
func InitDB(dbs ...interface{}) {
var err error
for _, v := range dbs {
switch v.(type) {
case *rdb.RedisClient:
c := config.GetRedisConfig()
redisClient, err = rdb.InitRedisCilent(c.Addr, c.Name, c.Passwd, c.DB, c.TLS, c.Cluster)
if err != nil {
log.Error("err:%v", err)
panic("connect redis fail")
}
case *edb.EsClient:
c := config.GetESConfig()
esClient, err = edb.InitEsClient(c.Urls, c.Sniff)
if err != nil {
log.Error("err:%v", err)
panic("connect es fail")
}
case *mdb.MysqlClient:
c := config.GetMysqlConfig()
mysqlClient, err = mdb.InitMysqlClient(c.DSN, c.Debug)
if err != nil {
log.Error("err:%v", err)
panic("connect mysql fail")
}
}
}
}
func Redis() *rdb.RedisClient {
return redisClient
}
func Mysql() *mdb.MysqlClient {
return mysqlClient
}
func ES() *edb.EsClient {
return esClient
}
func SetRedis(r *rdb.RedisClient) {
redisClient = r
}
func SetDB(r *mdb.MysqlClient) {
mysqlClient = r
}
func SetES(r *edb.EsClient) {
esClient = r
}