new(spec)
public
Creates a new
ConnectionPool object. spec is a ConnectionSpecification object
which describes database connection
information (e.g. adapter, host name, username, password, etc), as well as
the maximum size for this ConnectionPool.
The default ConnectionPool maximum size is 5.
Show source
def initialize(spec)
super()
@spec = spec
@checkout_timeout = (spec.config[:checkout_timeout] && spec.config[:checkout_timeout].to_f) || 5
@reaper = Reaper.new(self, (spec.config[:reaping_frequency] && spec.config[:reaping_frequency].to_f))
@reaper.run
@size = (spec.config[:pool] && spec.config[:pool].to_i) || 5
@thread_cached_conns = Concurrent::Map.new(initial_capacity: @size)
@connections = []
@automatic_reconnect = true
@now_connecting = 0
@threads_blocking_new_connections = 0
@available = ConnectionLeasingQueue.new self
@lock_thread = false
end