public RedisWaitKeyManager(ISubscriber subscriber, int timeout, RedisWaitKeyManager instance)
        {
            _subscriber     = subscriber;
            _timeout        = timeout;
            _waitKeyManager = instance._waitKeyManager;

            subscriber.Subscribe(Channel, releaseKey);
        }
 public static RedisWaitKeyManager Instance(ISubscriber subscriber)
 {
     lock (Lock)
     {
         if (_instance == null)
         {
             _instance = new RedisWaitKeyManager(subscriber, 20 * 1000);
         }
         if (!_instance.IsConnected)
         {
             _instance = new RedisWaitKeyManager(subscriber, 20 * 1000, _instance);
         }
         return(_instance);
     }
 }