LoginSignup
4
1

More than 3 years have passed since last update.

ActiveRecord::Base.connected? と ActiveRecord::Base.connection.active? の違いをソースコードからざっくり把握

Posted at

ActiveRecord::Base.connected?

# Returns true if a connection has already been opened.
def connected?
  synchronize { @connections.any? }
end

コメントとソースコードから、ファイルディスクリプタがひとつでも割り当てられていれば true が返りそう。

ActiveRecord::Base.connection.active?

mysql を例に。

def active?
  @connection.ping
end

@connection が nil かどうかはチェックしておらず、実際に ping を打った結果を返しているので、ファイルディスクリプタが存在するだけではなく死活もチェックしているように見える。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1