123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package mdb
- import (
- "context"
- "crypto/tls"
- "github.com/go-redis/redis/v8"
- mhayaMongo "github.com/mhaya/components/mongo"
- clog "github.com/mhaya/logger"
- cactor "github.com/mhaya/net/actor"
- cprofile "github.com/mhaya/profile"
- "go.mongodb.org/mongo-driver/mongo"
- "strings"
- )
- type ActorDB struct {
- cactor.Base
- Name string
- }
- var (
- MDB *mongo.Database
- RDB redis.UniversalClient
- )
- func (p *ActorDB) AliasID() string {
- return "database" + p.Name
- }
- // OnInit Actor初始化前触发该函数
- func (p *ActorDB) OnInit() {
- mongo := p.App().Find(mhayaMongo.Name).(*mhayaMongo.Component)
- if mongo == nil {
- clog.DPanicf("[component = %s] not found.", mhayaMongo.Name)
- }
- // 获取 db_id = "center_db_1" 的配置
- dbID := p.App().Settings().GetConfig("db_id_list").GetString("game_db_id")
- MDB = mongo.GetDb(dbID)
- if MDB == nil {
- clog.Panic("game_db_id not found")
- }
- redisConfig := cprofile.GetConfig("redis")
- tlsEnable := redisConfig.GetInt("tls")
- if tlsEnable == 1 {
- tlsConfig := &tls.Config{
- MinVersion: tls.VersionTLS12,
- PreferServerCipherSuites: true,
- }
- RDB = redis.NewUniversalClient(&redis.UniversalOptions{
- Addrs: strings.Split(redisConfig.GetString("address"), ","),
- Password: redisConfig.GetString("password"),
- DB: redisConfig.GetInt("database"),
- TLSConfig: tlsConfig,
- })
- } else {
- RDB = redis.NewUniversalClient(&redis.UniversalOptions{
- Addrs: strings.Split(redisConfig.GetString("address"), ","),
- Password: redisConfig.GetString("password"),
- DB: redisConfig.GetInt("database"),
- })
- }
- clog.Debug("redis address :" + redisConfig.GetString("address"))
- err := RDB.Set(context.Background(), "test", 0, 0).Err()
- if err != nil {
- clog.Errorf("redis client error: %v", err)
- }
- if p.App().NodeId() == "m-center" {
- SetIndex()
- }
- }
|