Class: Pinot::SimpleBrokerSelector

Inherits:
Object
  • Object
show all
Includes:
BrokerSelector
Defined in:
lib/pinot/simple_broker_selector.rb

Instance Method Summary collapse

Constructor Details

#initialize(broker_list) ⇒ SimpleBrokerSelector

Returns a new instance of SimpleBrokerSelector.



5
6
7
8
9
# File 'lib/pinot/simple_broker_selector.rb', line 5

def initialize(broker_list)
  @broker_list = broker_list.dup.freeze
  @mutex = Mutex.new
  @index = 0
end

Instance Method Details

#initObject



11
12
13
# File 'lib/pinot/simple_broker_selector.rb', line 11

def init
  raise BrokerNotFoundError, "no pre-configured broker lists" if @broker_list.empty?
end

#select_broker(_table) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/pinot/simple_broker_selector.rb', line 15

def select_broker(_table)
  raise BrokerNotFoundError, "no pre-configured broker lists" if @broker_list.empty?
  @mutex.synchronize do
    broker = @broker_list[@index % @broker_list.size]
    @index += 1
    broker
  end
end