3

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

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

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

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

4

1 回答 1

3

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

# Disconnects an existing DataMapper Session
def disconnect!
  DataObjects::Pooling.pools.each do |pool|
    pool.dispose
  end
end
于 2012-07-21T17:12:03.397 回答