def get_unit(key)
    current_key = assigned_key(key)
    if @queue_values[current_key] and @queue_values[current_key].length > 0
      return scale(current_key, @queue_values[current_key].shift) || super(current_key) || 0.0
    else
      return super(current_key) || 0.0
    end
  end
def get_unit(key)
    current_key = assigned_key(key)
    if @queue_values[current_key] and @queue_values[current_key].length > 0
      return scale(current_key, @queue_values[current_key].shift) || super(current_key) || 0.0
    else
      return super(current_key) || 0.0
    end
  end
Takes a hash with all keys supported by Factory.
Retrieves the next stored value for the given key.
The key that values are pulled from will not necessarily be the same as that passed to put() - value queue keys are assigned to get_unit() keys at random.
Retrieve average from source factories if no queued values are available, or zero if no source factories are assigned.