code: func (queue *Queue) RequeueFailed() error {
  	l := queue.GetFailedLength()
  	// TODO implement this in lua
  	for l > 0 {
  		err := queue.redisClient.RPopLPush(queueFailedKey(queue.Name), queueInputKey(queue.Name)).Err()
  		if err != nil {
  			return err
  		}
  		queue.incrRate(queueInputRateKey(queue.Name), 1)
  		l--
  	}
  	return nil
  }
docs: // RequeueFailed moves all failed packages back to the input queue