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 using the passed
Yield a connection object (obtained from calling the block passed to
Disconnect the connection object. For sharded connection pools, the Symbol passed is the shard/server to use.
An array of shard/server symbols for all shards/servers that this connection pool recognizes.
an integer representing the total number of connections in the pool, or for the given shard/server if sharding is supported.
an integer representing the maximum size of the connection pool, or the maximum size per 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.
|remove_servers(Array of Symbols)||
no longer recognize all shards/servers specified by the array of symbols.