private readonly IRedisClientsManager clientsManager; //Thread safe redis client/conn factory

        public RedisQueueHandlerWorker(IRedisClientsManager clientsManager, RedisMqServer mqServer, string queueName, Action <IQueueHandlerBackgroundWorker, Exception> errorHandler)
            : base(queueName, errorHandler)
        {
            if (clientsManager == null)
            {
                throw new ArgumentNullException("clientsManager");
            }
            if (mqServer == null)
            {
                throw new ArgumentNullException("mqServer");
            }
            this.clientsManager = clientsManager;
            this.MqServer       = mqServer;
        }
        public RedisBackgroundWorkerFactory(IRedisClientsManager clientsManager, RedisMqServer redisMqServer)
        {
            if (clientsManager == null)
            {
                throw new ArgumentNullException("clientsManager");
            }

            if (redisMqServer == null)
            {
                throw new ArgumentNullException("redisMqServer");
            }

            this.ClientsManager = clientsManager;
            this.RedisMqServer  = redisMqServer;
        }