如何重置mongoid 3数据库连接

问题描述 投票:3回答:3

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

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

mongoid mongoid3 moped
3个回答
4
投票

我找到了解决方案!

Mongoid::Sessions.default.disconnect

要么

Model.collection.database.session.disconnect

如果您使用ctrl-c来中断控制台中的查询,这将正确地重置连接。


0
投票

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

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


0
投票

除了断开特定会话与

Mongoid::Sessions.default.disconnect

您也可以断开所有会话

Mongoid::Sessions.disconnect

您可以获得所有活动会话的列表

Mongoid.sessions

© www.soinside.com 2019 - 2024. All rights reserved.