diff options
author | Matthew Draper <matthew@trebex.net> | 2017-11-25 16:05:13 +1030 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2017-11-26 15:12:50 +1030 |
commit | 9027fafff6da932e6e64ddb828665f4b01fc8902 (patch) | |
tree | 8099cb670482a0b44e39d68a3f69fb83ce6511f5 /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | |
parent | 2ec9c532cbbdbe636a17411db3f9de47ca6a81c1 (diff) | |
download | rails-9027fafff6da932e6e64ddb828665f4b01fc8902.tar.gz rails-9027fafff6da932e6e64ddb828665f4b01fc8902.tar.bz2 rails-9027fafff6da932e6e64ddb828665f4b01fc8902.zip |
Flush idle database connections
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb index 7e6db860dd..95e808648c 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb @@ -105,6 +105,7 @@ module ActiveRecord @logger = logger @config = config @pool = nil + @idle_since = Concurrent.monotonic_time @schema_cache = SchemaCache.new self @quoted_column_names, @quoted_table_names = {}, {} @visitor = arel_visitor @@ -164,6 +165,7 @@ module ActiveRecord "Current thread: #{Thread.current}." end + @idle_since = Concurrent.monotonic_time @owner = nil else raise ActiveRecordError, "Cannot expire connection, it is not currently leased." @@ -183,6 +185,12 @@ module ActiveRecord end end + # Seconds since this connection was returned to the pool + def seconds_idle # :nodoc: + return 0 if in_use? + Concurrent.monotonic_time - @idle_since + end + def unprepared_statement old_prepared_statements, @prepared_statements = @prepared_statements, false yield |