Class: Sequel::ConnectionPool
- Extended by:
- ClassMethods
- Defined in:
- lib/sequel/connection_pool.rb
Overview
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(Database, Hash)
-
Initialize using the passed Sequel::Database object and options hash.
- 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)
-
Disconnect the connection object. 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.
- max_size
-
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.
Direct Known Subclasses
ShardedSingleConnectionPool, ShardedTimedQueueConnectionPool, SingleConnectionPool, ThreadedConnectionPool, TimedQueueConnectionPool
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- OPTS =
Sequel::OPTS
- POOL_CLASS_MAP =
{ :threaded => :ThreadedConnectionPool, :single => :SingleConnectionPool, :sharded_threaded => :ShardedThreadedConnectionPool, :sharded_single => :ShardedSingleConnectionPool, :timed_queue => :TimedQueueConnectionPool, :sharded_timed_queue => :ShardedTimedQueueConnectionPool, }
Instance Attribute Summary collapse
-
#after_connect ⇒ Object
The after_connect proc used for this pool.
-
#connect_sqls ⇒ Object
An array of sql strings to execute on each new connection.
-
#db ⇒ Object
The Sequel::Database object tied to this connection pool.
Instance Method Summary collapse
-
#initialize(db, opts = OPTS) ⇒ ConnectionPool
constructor
Instantiates a connection pool with the given Database and options.
-
#servers ⇒ Object
An array of symbols for all shards/servers, which is a single
:default
by default.
Methods included from ClassMethods
Constructor Details
#initialize(db, opts = OPTS) ⇒ ConnectionPool
Instantiates a connection pool with the given Database and options.
113 114 115 116 117 118 119 |
# File 'lib/sequel/connection_pool.rb', line 113 def initialize(db, opts=OPTS) # SEQUEL6: Remove second argument, always use db.opts @db = db @use_old_connect_api = false # SEQUEL6: Remove @after_connect = opts[:after_connect] # SEQUEL6: Remove @connect_sqls = opts[:connect_sqls] # SEQUEL6: Remove @error_classes = db.send(:database_error_classes).dup.freeze end |
Instance Attribute Details
#after_connect ⇒ Object
The after_connect proc used for this pool. This is called with each new connection made, and is usually used to set custom per-connection settings. Deprecated.
90 91 92 |
# File 'lib/sequel/connection_pool.rb', line 90 def after_connect @after_connect end |
#connect_sqls ⇒ Object
An array of sql strings to execute on each new connection. Deprecated.
100 101 102 |
# File 'lib/sequel/connection_pool.rb', line 100 def connect_sqls @connect_sqls end |
#db ⇒ Object
The Sequel::Database object tied to this connection pool.
110 111 112 |
# File 'lib/sequel/connection_pool.rb', line 110 def db @db end |
Instance Method Details
#servers ⇒ Object
An array of symbols for all shards/servers, which is a single :default
by default.
122 123 124 |
# File 'lib/sequel/connection_pool.rb', line 122 def servers [:default] end |