我使用的是最新版本的ActiveRecord,并且拥有一个domains
模型的数据库,并拥有这个,池大小为10:
10.times.map do
Thread.new do
Domain.create(name: 'test')
end
end.each(&:join)
现在,当我将轮询大小设置为小于线程数时,此代码超时,这表明ActiveRecord为每个线程(预期)分配了新的连接轮询。但是现在我修改了这段代码:
10.times.map do
Thread.new do
Domain.create(name: 'test')
end
end.each(&:join)
sleep 1
10.times.map do
Thread.new do
Domain.create(name: 'test')
end
end.each(&:join)
我希望这段代码失败,因为在完成10个线程后,我希望ActiveRecord留下那10个连接"孤立" (现在我已经使用了with_connection
,它应该打开/关闭它们)。然而,这段代码成功完成,向我显示在某个地方,ActiveRecord添加了支持以自动关闭轮询,而不使用with_connection
。这是真的吗?