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.
70 lines
1.3 KiB
70 lines
1.3 KiB
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 |
|
}
|
|
|