123456789_123456789_123456789_123456789_123456789_

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

Overview

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

Configure the frequency by setting “reaping_frequency” in your database yaml file.

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 206

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 204

attr_reader :pool, :frequency

#pool (readonly)

[ GitHub ]

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

attr_reader :pool, :frequency

Instance Method Details

#run

[ GitHub ]

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

def run
  return unless frequency
  Thread.new(frequency, pool) { |t, p|
    while true
      sleep t
      p.reap
    end
  }
end