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

Inherits:
Object
  • Object
show all
Defined in:
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb

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.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pool, frequency) ⇒ Reaper

Returns a new instance of Reaper.


206
207
208
209
# 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

#frequencyObject (readonly)

Returns the value of attribute frequency


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

def frequency
  @frequency
end

#poolObject (readonly)

Returns the value of attribute pool


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

def pool
  @pool
end

Instance Method Details

#runObject


211
212
213
214
215
216
217
218
219
# 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