Beispiel #1
0
 public PooledMultiplexer(ConfigurationOptions configuration, RespConnectionPoolOptions options)
 {
     Configuration = configuration.Clone();
     if (configuration.EndPoints.Count != 1)
     {
         throw new ArgumentException("A single endpoint is expected", nameof(configuration));
     }
     _pool = new RespConnectionPool(cancellation => ConnectAsync(cancellation), options);
 }
Beispiel #2
0
        public static ValueTask <IConnectionMultiplexer> GetPooledMultiplexerAsync(
            this ConfigurationOptions configuration, int maxCount = 0, CancellationToken cancellationToken = default)
        {
            var options = maxCount <= 0 ? RespConnectionPoolOptions.Default : RespConnectionPoolOptions.Create(maxCount);
            var obj     = new PooledMultiplexer(configuration, options);

            if (obj.Configuration.AbortOnConnectFail)
            {
                var db = obj.GetDatabaseAsync(cancellationToken: cancellationToken);
                return(PingAsync(db));
            }
            return(new ValueTask <IConnectionMultiplexer>(obj));