public RedisClientFactory( IRedisClientsManager redisClientsManager, IRedisClientsManagerAsync redisClientsManagerAsync) { _manager = redisClientsManager; _managerAsync = redisClientsManagerAsync; }
public WeatherForecastController( ILogger <WeatherForecastController> logger, IConfiguration configuration, IRedbox redbox, IRedisClientsManagerAsync redisClientsManager) { _logger = logger; _connString = configuration.GetConnectionString("DefaultConnection"); _redbox = redbox; _redisMng = redisClientsManager; }
public async Task Does_block_ReadWrite_clients_pool() { await using IRedisClientsManagerAsync manager = CreateAndStartManager(); var delay = TimeSpan.FromSeconds(1); var client1 = await manager.GetClientAsync(); var client2 = await manager.GetClientAsync(); var client3 = await manager.GetClientAsync(); var client4 = await manager.GetClientAsync(); #pragma warning disable IDE0039 // Use local function Action func = async delegate #pragma warning restore IDE0039 // Use local function { await Task.Delay(delay + TimeSpan.FromSeconds(0.5)); await client4.DisposeAsync(); }; #if NETCORE _ = Task.Run(func); #else func.BeginInvoke(null, null); #endif var start = DateTime.Now; var client5 = await manager.GetClientAsync(); Assert.That(DateTime.Now - start, Is.GreaterThanOrEqualTo(delay)); AssertClientHasHost(client1, testReadWriteHosts[0]); AssertClientHasHost(client2, testReadWriteHosts[1]); AssertClientHasHost(client3, testReadWriteHosts[2]); AssertClientHasHost(client4, testReadWriteHosts[3]); AssertClientHasHost(client5, testReadWriteHosts[3]); }
public TokenRedisStorageProvider(IRedisClientsManagerAsync redisClientsManager) { _redisClientsManager = redisClientsManager ?? throw new ArgumentNullException(nameof(redisClientsManager)); }