我有使用不同数据库连接的场景。
#database.yml
development:
adapter: mysql2
database: dev_schema
username: root
password: root
host: localhost
otherdb:
adapter: mysql2
database: xyz_schema
username: root
password: root
host: localhost
使用上面定义的连接的两个模型。
class Foo < ActiveRecord::Base
#default uses developement connection
end
class Bar < ActiveRecord::Base
establish_connection :otherdb
end
在我的一个用例中,我手动创建线程如下。
Thread.new do
begin
Foo.last
Bar.last
rescue Exception => e
raise e
ensure
ActiveRecord::Base.connection.close if ActiveRecord::Base.connection
end
end
观察到 ActiveRecord :: Base.connection.close ,只关闭开发而不是其他db和线程的高并发性,建立的数据库连接数多于database.yml中定义的连接池。
是否有像 Bar.connection.close 这样的语法来手动关闭当前线程的 otherdb 连接?