diff options
author | Matthew Draper <matthew@trebex.net> | 2017-11-26 20:02:57 +1030 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-26 20:02:57 +1030 |
commit | 3ba20c7fa29b62fa5e39b234f970f93b755b8042 (patch) | |
tree | b0099689812f2ab2ad93b828b1160ed37c985f8b /activerecord/lib/active_record/connection_adapters/abstract_adapter.rb | |
parent | 4b2bbcf89787d8fd96fbf67675ba78a50a5d1570 (diff) | |
parent | 9027fafff6da932e6e64ddb828665f4b01fc8902 (diff) | |
download | rails-3ba20c7fa29b62fa5e39b234f970f93b755b8042.tar.gz rails-3ba20c7fa29b62fa5e39b234f970f93b755b8042.tar.bz2 rails-3ba20c7fa29b62fa5e39b234f970f93b755b8042.zip |
Merge pull request #31221 from matthewd/flush-idle-connections
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 5411a6a262..8993c517a6 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 |