docs: def get(self, block=True, timeout=None):
          """
          Get a Task from the queue
  
          :param block: Block application until a Task is received
          :param timeout: Timeout after n seconds
          :return: :class:`~redisqueue.AbstractTask` instance
          :exception: ConnectionError if queue is not connected
          """
          if not self.connected:
              raise QueueNotConnectedError("Queue is not Connected")
  
          if block:
              payload = self.__db.brpop(self._key, timeout=timeout)
          else:
              payload = self.__db.rpop(self._key)
  
          if not payload:
              return None
  
          task = self.task_class(payload[1])
  
          # if task was marked as unique then
          # remove the unique_hash from lock table
          if task.unique:
              self.__db.srem(self._lock_key, task.unique_hash())
  
          return task