Ruby on rails 管理ActiveRecord连接池

Ruby on rails 管理ActiveRecord连接池,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我有一个非常不寻常的情况,我需要使用匿名类连接到sqlite数据库。该类在每次请求时创建,然后使用ActiveRecord的build\u connection连接到数据库。我的问题是每次调用build\u connection,ActiveRecord都会创建一个新的连接池来跟踪通过类进行的连接。由于这些是一次性使用类,这实际上是内存泄漏,ActiveRecord跟踪的连接池数量会随着每个请求的增加而增加。解决这个问题的一个方法是打电话 model_copy = Class.new Model

我有一个非常不寻常的情况,我需要使用匿名类连接到sqlite数据库。该类在每次请求时创建,然后使用ActiveRecord的
build\u connection
连接到数据库。我的问题是每次调用
build\u connection
,ActiveRecord都会创建一个新的连接池来跟踪通过类进行的连接。由于这些是一次性使用类,这实际上是内存泄漏,ActiveRecord跟踪的连接池数量会随着每个请求的增加而增加。解决这个问题的一个方法是打电话

model_copy = Class.new Model { ... }
model_copy.establish_connection ...
# Do work
model_copy.connection.disconnect!
model_copy.connection_handler.remove_connection model_copy
我想这样做没有明确的断开!并删除连接调用,因为这很烦人,而且很容易出错和内存泄漏。这里有人有什么指导吗

谢谢

假设
#Do work
部分是唯一发生变化的部分,这看起来像是一个采用块的方法的经典用例:

def hit_the_db
  model_copy = Class.new Model { ... }
  model_copy.establish_connection ...
  yield
  model_copy.connection.disconnect!
  model_copy.connection_handler.remove_connection model_copy
end

...

hit_the_db { block of code that does work }