在分叉之前强制断开与DataMapper(DataObjects适配器)的连接?

时间:2012-05-05 04:33:10

标签: ruby datamapper

使用DataMapper,在一个分叉子进程的过程中,由于父连接仍在打开(和使用)数据库连接,我收到数据包损坏。我想强制断开连接并重新连接,就像你在分叉时应该做的那样,但DataMapper看起来并不像它甚至考虑过这个用例。

现在我要通过一个私有API,并且必须弄清楚内部及其连接池,以便做到这一点,所以感觉不对:

DataMapper.repository(:default).adapter.send(:open_connection).dispose

有人知道是否有更“公开”和正确的方法吗?我在IRC频道问道,但没有人回应。

1 个答案:

答案 0 :(得分:2)

我在另一个问题中提出了the solution的成功,例如

# Disconnects an existing DataMapper Session
def disconnect!
  DataObjects::Pooling.pools.each do |pool|
    pool.dispose
  end
end