The base connection pool class, which all other connection pools are based
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 adds the following methods:
add_servers(Array of Symbols) : | start recognizing all shards/servers specified by the array of symbols.
|