30 lines
792 B
Go
30 lines
792 B
Go
package dbbuild
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.imall.cloud/openim/open-im-server-deploy/pkg/common/config"
|
|
"git.imall.cloud/openim/open-im-server-deploy/pkg/common/storage/cache/cachekey"
|
|
"github.com/openimsdk/tools/db/mongoutil"
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
type Builder interface {
|
|
Mongo(ctx context.Context) (*mongoutil.Client, error)
|
|
Redis(ctx context.Context) (redis.UniversalClient, error)
|
|
}
|
|
|
|
func NewBuilder(mongoConf *config.Mongo, redisConf *config.Redis) Builder {
|
|
if redisConf != nil {
|
|
cachekey.SetOnlinePrefix(redisConf.OnlineKeyPrefix, redisConf.OnlineKeyPrefixHashTag, redisConf.RedisMode)
|
|
}
|
|
if config.Standalone() {
|
|
globalStandalone.setConfig(mongoConf, redisConf)
|
|
return globalStandalone
|
|
}
|
|
return µservices{
|
|
mongo: mongoConf,
|
|
redis: redisConf,
|
|
}
|
|
}
|