Class: ActiveRecord::ConnectionAdapters::PoolConfig
Do not use. This class is for internal use only.
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
self,
MonitorMixin
|
|
Inherits: | Object |
Defined in: | activerecord/lib/active_record/connection_adapters/pool_config.rb |
Constant Summary
-
INSTANCES =
private
# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 15ObjectSpace::WeakMap.new
Class Method Summary
Instance Attribute Summary
- #connection_descriptor rw
- #connection_descriptor=(connection_descriptor) rw
- #db_config readonly
- #role readonly
- #schema_reflection rw
- #schema_reflection=(value) rw
- #server_version(connection) rw
- #server_version=(value) rw
- #shard readonly
Instance Method Summary
Constructor Details
.new(connection_class, db_config, role, shard) ⇒ PoolConfig
# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 28
def initialize(connection_class, db_config, role, shard) super() @server_version = nil self.connection_descriptor = connection_class @db_config = db_config @role = role @shard = shard @pool = nil INSTANCES[self] = self end
Class Method Details
.discard_pools!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 19
def discard_pools! INSTANCES.each_key(&:discard_pool!) end
.disconnect_all!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 23
def disconnect_all! INSTANCES.each_key { |c| c.disconnect!(automatic_reconnect: true) } end
Instance Attribute Details
#connection_descriptor (rw)
[ GitHub ]#connection_descriptor=(connection_descriptor) (rw)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 43
def connection_descriptor=(connection_descriptor) case connection_descriptor when ConnectionHandler::ConnectionDescriptor @connection_descriptor = connection_descriptor else @connection_descriptor = ConnectionHandler::ConnectionDescriptor.new(connection_descriptor.name, connection_descriptor.primary_class?) end end
#db_config (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 8
attr_reader :db_config, :role, :shard, :connection_descriptor
#role (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 8
attr_reader :db_config, :role, :shard, :connection_descriptor
#schema_reflection (rw)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 11
def schema_reflection @schema_reflection ||= SchemaReflection.new(db_config.lazy_schema_cache_path) end
#schema_reflection=(value) (rw)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 9
attr_writer :schema_reflection, :server_version
#server_version(connection) (rw)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 39
def server_version(connection) @server_version || synchronize { @server_version ||= connection.get_database_version } end
#server_version=(value) (rw)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 9
attr_writer :schema_reflection, :server_version
#shard (readonly)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 8
attr_reader :db_config, :role, :shard, :connection_descriptor
Instance Method Details
#discard_pool!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 69
def discard_pool! return unless @pool synchronize do return unless @pool @pool.discard! @pool = nil end end
#disconnect!(automatic_reconnect: false)
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 52
def disconnect!(automatic_reconnect: false) return unless @pool synchronize do return unless @pool @pool.automatic_reconnect = automatic_reconnect @pool.disconnect! end nil end
#pool
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/pool_config.rb', line 65
def pool @pool || synchronize { @pool ||= ConnectionAdapters::ConnectionPool.new(self) } end