使用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