123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper

Overview

Every #frequency seconds, the reaper will call #reap and #flush on #pool. A reaper instantiated with a zero frequency will never reap the connection pool.

Configure the frequency by setting reaping_frequency in your database yaml file (default 60 seconds).

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(pool, frequency) ⇒ Reaper

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 292

def initialize(pool, frequency)
  @pool      = pool
  @frequency = frequency
end

Instance Attribute Details

#frequency (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 290

attr_reader :pool, :frequency

#pool (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 290

attr_reader :pool, :frequency

Instance Method Details

#run

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 297

def run
  return unless frequency && frequency > 0
  Thread.new(frequency, pool) { |t, p|
    loop do
      sleep t
      p.reap
      p.flush
    end
  }
end