3

在 Mongoid 2.x 中,可以执行Mongoid.database.connection.close重置数据库连接。这个特定的 API 在 Mongoid3 中不再可用,重置连接的新方法是什么?

动机:在查询正在进行时中断查询(ctrl-c)会终止您的连接。任何后续查询都将挂起。此外,诸如超时之类的抛出错误也会做同样的事情(参见:http ://simple10.com/rescuing-from-racktimeout-to-close-mongodb-connection )。

4

3 回答 3

4

我找到了解决方案!

Mongoid::Sessions.default.disconnect

或者

Model.collection.database.session.disconnect

如果您ctrl-c在控制台中中断查询,这将正确重置连接。

于 2013-11-20T20:17:02.277 回答
0

事实证明,Mongoid3 的替代 mongo 驱动程序 Moped 实际上会自动处理重试连接。

https://github.com/mongoid/moped/blob/master/lib/moped/node.rb#L115

于 2012-09-29T20:56:13.760 回答
0

除了断开特定会话与

Mongoid::Sessions.default.disconnect

您还可以通过以下方式断开所有会话

Mongoid::Sessions.disconnect

您可以通过以下方式获取所有活动会话的列表

Mongoid.sessions

于 2018-08-31T16:12:01.097 回答