Class: ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper
- Defined in:
- activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
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).
Instance Attribute Summary collapse
-
#frequency ⇒ Object
readonly
Returns the value of attribute frequency.
-
#pool ⇒ Object
readonly
Returns the value of attribute pool.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(pool, frequency) ⇒ Reaper
constructor
A new instance of Reaper.
- #run ⇒ Object
Constructor Details
#initialize(pool, frequency) ⇒ Reaper
Returns a new instance of Reaper.
314 315 316 317 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 314 def initialize(pool, frequency) @pool = pool @frequency = frequency end |
Instance Attribute Details
#frequency ⇒ Object (readonly)
Returns the value of attribute frequency
312 313 314 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 312 def frequency @frequency end |
#pool ⇒ Object (readonly)
Returns the value of attribute pool
312 313 314 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 312 def pool @pool end |
Class Method Details
.register_pool(pool, frequency) ⇒ Object
:nodoc:
324 325 326 327 328 329 330 331 332 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 324 def register_pool(pool, frequency) # :nodoc: @mutex.synchronize do unless @threads[frequency]&.alive? @threads[frequency] = spawn_thread(frequency) end @pools[frequency] ||= [] @pools[frequency] << WeakRef.new(pool) end end |
Instance Method Details
#run ⇒ Object
362 363 364 365 |
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 362 def run return unless frequency && frequency > 0 self.class.register_pool(pool, frequency) end |