module ActiveRecord::Bogacs::PoolSupport
Attributes
schema_cache[RW]
Public Class Methods
included(base)
click to toggle source
# File lib/active_record/bogacs/pool_support.rb, line 7 def self.included(base) base.send :include, ActiveRecord::ConnectionAdapters::QueryCache::ConnectionPoolConfiguration end
Public Instance Methods
connection_cache_key(owner_thread = Thread.current)
click to toggle source
@override (previously named current_connection_id) @private connection_cache_key
for AR (5.2) compatibility
# File lib/active_record/bogacs/pool_support.rb, line 29 def connection_cache_key(owner_thread = Thread.current) owner_thread.object_id end
lock_thread=(lock_thread)
click to toggle source
# File lib/active_record/bogacs/pool_support.rb, line 13 def lock_thread=(lock_thread) if lock_thread @lock_thread = Thread.current else @lock_thread = nil end end
new_connection()
click to toggle source
# File lib/active_record/bogacs/pool_support.rb, line 21 def new_connection conn = Base.send(spec.adapter_method, spec.config) conn.schema_cache = schema_cache.dup if schema_cache && conn.respond_to?(:schema_cache=) conn end
reap()
click to toggle source
clear_stale_cached_connections! without the deprecation :
# File lib/active_record/bogacs/pool_support.rb, line 42 def reap keys = @reserved_connections.keys - Thread.list.find_all { |t| t.alive? }.map(&:object_id) keys.each do |key| conn = @reserved_connections[key] checkin conn @reserved_connections.delete(key) end end
remove(conn)
click to toggle source
@note Method not part of the pre 4.0 API (does no exist).
# File lib/active_record/bogacs/pool_support.rb, line 34 def remove(conn) synchronize do @connections.delete conn release conn end end
Private Instance Methods
_run_checkin_callbacks(conn)
click to toggle source
# File lib/active_record/bogacs/pool_support.rb, line 60 def _run_checkin_callbacks(conn) if conn.respond_to?(:_run_checkin_callbacks) conn._run_checkin_callbacks do conn.expire end else conn.run_callbacks :checkin do conn.expire end end rescue => e remove conn conn.disconnect! rescue nil raise e end
_run_checkout_callbacks(conn)
click to toggle source
# File lib/active_record/bogacs/pool_support.rb, line 76 def _run_checkout_callbacks(conn) if conn.respond_to?(:_run_checkout_callbacks) conn._run_checkout_callbacks do conn.verify! end else conn.run_callbacks :checkout do conn.verify! end end rescue => e remove conn conn.disconnect! rescue nil raise e end
current_thread()
click to toggle source
# File lib/active_record/bogacs/pool_support.rb, line 54 def current_thread @lock_thread || Thread.current end