Class: Elasticsearch::Transport::Transport::Connections::Selector::RoundRobin
- Inherits:
-
Object
- Object
- Elasticsearch::Transport::Transport::Connections::Selector::RoundRobin
- Includes:
- Base
- Defined in:
- lib/elasticsearch/transport/transport/connections/selector.rb
Overview
“Round-robin” selector strategy (default).
Instance Attribute Summary
Attributes included from Base
Instance Method Summary collapse
-
#initialize(arguments = {}) ⇒ RoundRobin
constructor
A new instance of RoundRobin.
-
#select(options = {}) ⇒ Connections::Connection
Returns the next connection from the collection, rotating them in round-robin fashion.
Constructor Details
#initialize(arguments = {}) ⇒ RoundRobin
Returns a new instance of RoundRobin.
66 67 68 69 70 |
# File 'lib/elasticsearch/transport/transport/connections/selector.rb', line 66 def initialize(arguments = {}) super @mutex = Mutex.new @current = nil end |
Instance Method Details
#select(options = {}) ⇒ Connections::Connection
Returns the next connection from the collection, rotating them in round-robin fashion.
76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/elasticsearch/transport/transport/connections/selector.rb', line 76 def select(={}) @mutex.synchronize do conns = connections if @current && (@current < conns.size-1) @current += 1 else @current = 0 end conns[@current] end end |