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
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
|
||
|
|
}
|