instance method disconnect

Ruby on Rails 8.1.2

Since v5.2.8.1

Available in: v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

disconnect(raise_on_acquisition_timeout = true)

Disconnects all connections in the pool, and clears the pool.

Raises:

  • ActiveRecord::ExclusiveConnectionTimeoutError if unable to gain ownership of all connections in the pool within a timeout interval (default duration is spec.db_config.checkout_timeout * 2 seconds).

Parameters

raise_on_acquisition_timeout opt = true
Source
# File activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb, line 515
      def disconnect(raise_on_acquisition_timeout = true)
        @reaper_lock.synchronize do
          return if self.discarded?

          with_exclusively_acquired_all_connections(raise_on_acquisition_timeout) do
            synchronize do
              return if self.discarded?
              @connections.each do |conn|
                if conn.in_use?
                  conn.steal!
                  checkin conn
                end
                conn.disconnect!
              end
              @connections = []
              @leases.clear
              @available.clear

              # Stop maintaining the minimum size until reactivated
              @activated = false
            end
          end
        end
      end

Defined in activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb line 515 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::ConnectionAdapters::ConnectionPool

Type at least 2 characters to search.

↑↓ navigate · open · esc close