code: func (queue *Queue) Delete() error {
  	consumers, err := queue.getConsumers()
  	if err != nil {
  		return err
  	}
  
  	for _, name := range consumers {
  		if queue.isActiveConsumer(name) {
  			return fmt.Errorf("cannot delete queue with active consumers")
  		}
  
  		consumer, err := queue.AddConsumer(name)
  		if err != nil {
  			return err
  		}
  
  		err = consumer.ResetWorking()
  		if err != nil {
  			return err
  		}
  
  		err = queue.redisClient.SRem(queueWorkersKey(queue.Name), name).Err()
  		if err != nil {
  			return err
  		}
  	}
  
  	err = queue.ResetInput()
  	if err != nil {
  		return err
  	}
  
  	err = queue.ResetFailed()
  	if err != nil {
  		return err
  	}
  
  	err = queue.redisClient.SRem(masterQueueKey(), queue.Name).Err()
  	if err != nil {
  		return err
  	}
  	err = queue.redisClient.Del(queueWorkersKey(queue.Name)).Err()
  	if err != nil {
  		return err
  	}
  
  	queue.redisClient.Close()
  
  	return nil
  }
docs: // Delete clears all input and failed queues as well as all consumers
  // will not proceed as long as consumers are running