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); }
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));