Class: ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper
- Defined in:
 - activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb
 
Overview
Active Record Connection Pool Reaper
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.
      19 20 21 22  | 
    
      # File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb', line 19 def initialize(pool, frequency) @pool = pool @frequency = frequency end  | 
  
Instance Attribute Details
#frequency ⇒ Object (readonly)
Returns the value of attribute frequency.
      17 18 19  | 
    
      # File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb', line 17 def frequency @frequency end  | 
  
#pool ⇒ Object (readonly)
Returns the value of attribute pool.
      17 18 19  | 
    
      # File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb', line 17 def pool @pool end  | 
  
Class Method Details
.register_pool(pool, frequency) ⇒ Object
:nodoc:
      29 30 31 32 33 34 35 36 37  | 
    
      # File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb', line 29 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
      71 72 73 74  | 
    
      # File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb', line 71 def run return unless frequency && frequency > 0 self.class.register_pool(pool, frequency) end  |