package impl import ( "errors" "git.apinb.com/bsm-sdk/core/cache/redis" "git.apinb.com/bsm-sdk/core/logger" "git.apinb.com/ops/logs/internal/config" "gorm.io/gorm" ) var ( RedisService *redis.RedisClient DBService *gorm.DB ) func NewImpl() { RedisService = newRedisCache(config.Spec.Cache) DBService = newDatabase(config.Spec.Databases) logger.New(nil) } // Close 关闭数据库和 Redis 连接。 func Close() error { var closeErrors []error if DBService != nil { if sqlDB, err := DBService.DB(); err != nil { closeErrors = append(closeErrors, err) } else if err := sqlDB.Close(); err != nil { closeErrors = append(closeErrors, err) } } if RedisService != nil && RedisService.Client != nil { if err := RedisService.Client.Close(); err != nil { closeErrors = append(closeErrors, err) } } return errors.Join(closeErrors...) }