2017-10-14 10 views
0

Rails 5(http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/ConnectionPool.html#method-i-stat)用に定義されたstatメソッドを見ることができます。これはさまざまな状態の接続を報告します。これはRails 4以前では利用できません。 Rails 4で情報を取得する別の方法はありますか?Rails4:ActiveRecord接続プールのアイドル状態の接続数を取得するにはどうすればよいですか?

答えて

1

あなたはRails4

における方法starこれはあなたにもRails4に追加することができるものであるのと同じパッチを適用することができます。

ActiveRecord::Base.connection_pool.synchronize do 
    { connections: ActiveRecord::Base.connection_pool.connections.size } 
end 

=> {:接続=> 1}

Rails5 stat定義

# File activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb, line 583 
def stat 
    synchronize do 
    { 
     size: size, 
     connections: @connections.size, 
     busy: @connections.count { |c| c.in_use? && c.owner.alive? }, 
     dead: @connections.count { |c| c.in_use? && !c.owner.alive? }, 
     idle: @connections.count { |c| !c.in_use? }, 
     waiting: num_waiting_in_queue, 
     checkout_timeout: checkout_timeout 
    } 
    end 
end 
+0

IサルパッチMysqlAdapterとのConnectionPoolの両方に有していました。しかし、それは働いた。実際、私は拡張によって、接続を保持するスレッドのリストを取得することができました。それはすべて助けになった。 – CppNoob

関連する問題