使用DataMapper,在一个分叉子进程的过程中,由于父连接仍在打开(和使用)数据库连接,我收到数据包损坏。我想强制断开连接并重新连接,就像你在分叉时应该做的那样,但DataMapper看起来并不像它甚至考虑过这个用例。
现在我要通过一个私有API,并且必须弄清楚内部及其连接池,以便做到这一点,所以感觉不对:
DataMapper.repository(:default).adapter.send(:open_connection).dispose
有人知道是否有更“公开”和正确的方法吗?我在IRC频道问道,但没有人回应。
答案 0 :(得分:2)
我在另一个问题中提出了the solution的成功,例如
# Disconnects an existing DataMapper Session
def disconnect!
DataObjects::Pooling.pools.each do |pool|
pool.dispose
end
end