class Monga::ConnectionPool
Attributes
connections[R]
Public Class Methods
new(opts)
click to toggle source
# File lib/monga/connection_pool.rb, line 5 def initialize(opts) pool_size = opts.delete :pool_size @connections = [] pool_size.times do @connections << Monga::Connection.new(opts) end end
Public Instance Methods
aquire_connection()
click to toggle source
Aquires random connection with min waiting responses among connected. Otherwise return random disconnected one.
# File lib/monga/connection_pool.rb, line 16 def aquire_connection connected = @connections.select(&:connected?) if connected.any? min = connected.min_by{ |c| c.responses.size }.responses.size conns = connected.select{ |c| c.responses.size == min } conns.sample else @connections.sample end end