1
我可以可靠地使连接池大小小于并行使用ActiveRecord连接的线程数吗?我想线程池的大小是一个。当池大小小于线程数时,避免ConnectionTimeoutError
我得到错误:
could not obtain a database connection within 5.000
conds (waited 5.000 seconds) ActiveRecord::ConnectionTimeoutError)
我试着模拟它我的本地机器。但在这里我也面临着同样的错误。
@db_host = "localhost"
@db_user = "root"
@db_pass = "root"
@db_name = "me_dev1"
ActiveRecord::Base.establish_connection(
:adapter => "mysql2",
:host => @db_host,
:database => @db_name,
:pool => 1,
:reaping_frequency => 1
)
class Test < ActiveRecord::Base
def create_data
100.times do |i|
t1=Thread.new {
begin
test=Test.where(:test_name => "automation test")
puts test
ensure
ActiveRecord::Base.connection.close if ActiveRecord::Base.connection ;
ActiveRecord::Base.clear_active_connections! ;
end
}
t1.join
end
end
end
Test.new.create_data
由于
我冒昧地编辑了您的问题,使标题和问题更具体。如果我错了,导致您的问题不再准确,请您回滚我的编辑? –