Method: ActiveRecord::ConnectionAdapters::ConnectionPool#flush
- Defined in:
- activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
#flush(minimum_idle = @idle_timeout) ⇒ Object
Disconnect all connections that have been idle for at least minimum_idle seconds. Connections currently checked out, or that were checked in less than minimum_idle seconds ago, are unaffected.
648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 648 def flush(minimum_idle = @idle_timeout) return if minimum_idle.nil? idle_connections = synchronize do return if self.discarded? @connections.select do |conn| !conn.in_use? && conn.seconds_idle >= minimum_idle end.each do |conn| conn.lease @available.delete conn @connections.delete conn end end idle_connections.each do |conn| conn.disconnect! end end |