module Sequel::ConnectionPool::ClassMethods
Class methods used to return an appropriate pool subclass, separated into a module for easier overridding by extensions.
Public Instance Methods
get_pool(db, opts = OPTS)
click to toggle source
Return a pool subclass instance based on the given options. If a :pool_class
option is provided is provided, use that pool class, otherwise use a new instance of an appropriate pool subclass based on the :single_threaded
and :servers
options.
# File lib/sequel/connection_pool.rb 46 def get_pool(db, opts = OPTS) 47 connection_pool_class(opts).new(db, opts) 48 end
Private Instance Methods
connection_pool_class(opts)
click to toggle source
Return a connection pool class based on the given options.
# File lib/sequel/connection_pool.rb 53 def connection_pool_class(opts) 54 if pc = opts[:pool_class] 55 unless pc.is_a?(Class) 56 unless name = POOL_CLASS_MAP[pc] 57 raise Sequel::Error, "unsupported connection pool type, please pass appropriate class as the :pool_class option" 58 end 59 60 require_relative "connection_pool/#{pc}" 61 pc = Sequel.const_get(name) 62 end 63 64 pc 65 else 66 pc = if opts[:single_threaded] 67 opts[:servers] ? :sharded_single : :single 68 else 69 opts[:servers] ? :sharded_threaded : :threaded 70 end 71 72 connection_pool_class(:pool_class=>pc) 73 end 74 end