Class: Pinot::SimpleBrokerSelector
- Inherits:
-
Object
- Object
- Pinot::SimpleBrokerSelector
- Includes:
- BrokerSelector
- Defined in:
- lib/pinot/simple_broker_selector.rb
Instance Method Summary collapse
- #init ⇒ Object
-
#initialize(broker_list) ⇒ SimpleBrokerSelector
constructor
A new instance of SimpleBrokerSelector.
- #select_broker(_table) ⇒ Object
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
#init ⇒ Object
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 |