123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package global
- import (
- "github.com/go-redis/redis/v8"
- "github.com/songzhibin97/gkit/cache/local_cache"
- "github.com/spf13/viper"
- "go.uber.org/zap"
- "golang.org/x/sync/singleflight"
- "gorm.io/gorm"
- "server/config"
- "server/utils/timer"
- "sync"
- )
- var (
- GVA_DB *gorm.DB
- GVA_DBList map[string]*gorm.DB
- GVA_REDIS *redis.Client
- GVA_CONFIG config.Server
- GVA_VP *viper.Viper
- GVA_LOG *zap.Logger
- GVA_Timer timer.Timer = timer.NewTimerTask()
- GVA_Concurrency_Control = &singleflight.Group{}
- BlackCache local_cache.Cache
- lock sync.RWMutex
- )
- // GetGlobalDBByDBName 通过名称获取db list中的db
- func GetGlobalDBByDBName(dbname string) *gorm.DB {
- lock.RLock()
- defer lock.RUnlock()
- return GVA_DBList[dbname]
- }
- // MustGetGlobalDBByDBName 通过名称获取db 如果不存在则panic
- func MustGetGlobalDBByDBName(dbname string) *gorm.DB {
- lock.RLock()
- defer lock.RUnlock()
- db, ok := GVA_DBList[dbname]
- if !ok || db == nil {
- panic("db no init")
- }
- return db
- }
|