在分叉之前强制断开与数据映射器(数据对象适配器)的连接



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

现在我正在通过一个私有 API,并且必须弄清楚一些关于内部及其连接池的信息来执行此操作,所以感觉不对:

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

有谁知道是否有更"公开"和正确的方法来做到这一点? 我在IRC频道上询问,但没有人回应。

我在另一个问题中提出的解决方案取得了成功,例如

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

最新更新