Ejemplo n.º 1
0
 protected virtual bool DestroyClientCondition(IPooledRedisClient pooledRedisClient)
 {
     return(pooledRedisClient.State == ClientState.Subscription ||
            pooledRedisClient.State == ClientState.Quit ||
            pooledRedisClient.State == ClientState.Disconnect ||
            pooledRedisClient.State == ClientState.FatalError);
 }
Ejemplo n.º 2
0
 private Exception TryDestroyClient(IPooledRedisClient client)
 {
     try
     {
         DestroyClient(client);
         return(null);
     }
     catch (Exception ex)
     {
         return(ex);
     }
 }
Ejemplo n.º 3
0
 internal void ReturnClient(IPooledRedisClient pooledRedisClient)
 {
     if (DestroyClientCondition(pooledRedisClient))
     {
         pooledRedisClient.Destroy();
     }
     else if (Disposed)
     {
         TryDestroyClient(pooledRedisClient);
     }
     else
     {
         var pool = _pools.GetOrAdd(pooledRedisClient.ConnectionString, k => new ConcurrentQueue <PoolItem>());
         if (PoolIsOversized(pool))
         {
             TryDestroyClient(pooledRedisClient);
         }
         else
         {
             pool.Enqueue(new PoolItem(pooledRedisClient));
         }
     }
 }
Ejemplo n.º 4
0
 public PoolItem(IPooledRedisClient client)
 {
     Client = client;
     Timestamp = DateTime.Now;
 }
Ejemplo n.º 5
0
 protected virtual void DestroyClient(IPooledRedisClient client)
 {
     client.QuitAsync().Wait(_destroyTimeout);
     client.Destroy();
 }
Ejemplo n.º 6
0
 public PoolItem(IPooledRedisClient client)
 {
     Client    = client;
     Timestamp = DateTime.Now;
 }
Ejemplo n.º 7
0
 private Exception TryDestroyClient(IPooledRedisClient client)
 {
     try
     {
         DestroyClient(client);
         return null;
     }
     catch (Exception ex)
     {
         return ex;
     }
 }
Ejemplo n.º 8
0
 protected virtual bool DestroyClientCondition(IPooledRedisClient pooledRedisClient)
 {
     return pooledRedisClient.State == ClientState.Subscription ||
            pooledRedisClient.State == ClientState.Quit ||
            pooledRedisClient.State == ClientState.Disconnect ||
            pooledRedisClient.State == ClientState.FatalError;
 }
Ejemplo n.º 9
0
 protected virtual void DestroyClient(IPooledRedisClient client)
 {
     client.QuitAsync().Wait(_destroyTimeout);
     client.Destroy();
 }
Ejemplo n.º 10
0
 internal void ReturnClient(IPooledRedisClient pooledRedisClient)
 {
     if (DestroyClientCondition(pooledRedisClient))
     {
         pooledRedisClient.Destroy();
     }
     else if (Disposed)
     {
         TryDestroyClient(pooledRedisClient);
     }
     else
     {
         var pool = _pools.GetOrAdd(pooledRedisClient.ConnectionString, k => new ConcurrentQueue<PoolItem>());
         if (PoolIsOversized(pool))
             TryDestroyClient(pooledRedisClient);
         else
             pool.Enqueue(new PoolItem(pooledRedisClient));
     }
 }