3

子をフォークするプロセスで DataMapper を使用すると、親で DB 接続がまだ開いている (および使用されている) ため、パケットが破損しています。フォークするときに行うはずのように、強制的に切断して再接続したいのですが、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 に答える