The base connection pool class, which all other connection pools are built on. This class is not instantiated directly, but subclasses should at the very least implement the following API:
initialize(Hash, &block) - The block is used as the connection proc, which should accept a single symbol argument.
hold(Symbol, &block) - yield a connection object (obtained from calling the block passed to initialize) to the current block. For sharded connection pools, the Symbol passed is the shard/server to use.
disconnect(Symbol, &block) - disconnect the connection object. If a block is given, pass the connection option to it, otherwise use the :disconnection_proc option in the hash passed to initialize. For sharded connection pools, the Symbol passed is the shard/server to use.
servers - an array of shard/server symbols for all shards/servers that this connection pool recognizes.
size - an integer representing the total number of connections in the pool, or for the given shard/server if sharding is supported.
For sharded connection pools, the sharded API:
A map of [single threaded, sharded] values to files (indicating strings to be required) ConnectionPool subclasses.
The default server to use
Instantiates a connection pool with the given options. The block is called with a single symbol (specifying the server/shard to use) every time a new connection is needed. The following options are respected for all connection pools:
:after_connect - The proc called after each new connection is made, with the connection object, useful for customizations that you want to apply to all connections.
:disconnection_proc - The proc called when removing connections from the pool, which is passed the connection to disconnect.
# File lib/sequel/connection_pool.rb, line 69 def initialize(opts={}, &block) raise(Sequel::Error, "No connection proc specified") unless @connection_proc = block @disconnection_proc = opts[:disconnection_proc] @after_connect = opts[:after_connect] end
Generated with the Darkfish Rdoc Generator 2.