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 43 def get_pool(db, opts = OPTS) 44 connection_pool_class(opts).new(db, opts) 45 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 50 def connection_pool_class(opts) 51 if pc = opts[:pool_class] 52 unless pc.is_a?(Class) 53 unless name = POOL_CLASS_MAP[pc] 54 raise Sequel::Error, "unsupported connection pool type, please pass appropriate class as the :pool_class option" 55 end 56 57 require_relative "connection_pool/#{pc}" 58 pc = Sequel.const_get(name) 59 end 60 61 pc 62 else 63 pc = if opts[:single_threaded] 64 opts[:servers] ? :sharded_single : :single 65 else 66 opts[:servers] ? :sharded_threaded : :threaded 67 end 68 69 connection_pool_class(:pool_class=>pc) 70 end 71 end