Ruby 如何强制关闭数据库中打开的连接?

Ruby 如何强制关闭数据库中打开的连接?,ruby,sinatra,database-connection,rethinkdb,rethinkdb-ruby,Ruby,Sinatra,Database Connection,Rethinkdb,Rethinkdb Ruby,我与RejectDB的开放连接有问题。如果我的Sinatra后端应用程序方法中出现错误,则与Reinsight的连接不会关闭。因此,打开连接的数量缓慢增加 这会导致打开的连接过多,从而导致错误: Error: the RethinkDB database is not available 所以问题有两个:第一,现在就帮我;如何关闭打开的重新思考连接? 第二,我如何避免建立开放式连接?我应该为我的后端的每次呼叫打开一个连接,还是应该在我的应用程序启动时只打开一次与Reinspect的连接 “重新

我与RejectDB的开放连接有问题。如果我的Sinatra后端应用程序方法中出现错误,则与Reinsight的连接不会关闭。因此,打开连接的数量缓慢增加

这会导致打开的连接过多,从而导致错误:

Error: the RethinkDB database is not available
所以问题有两个:第一,现在就帮我;如何关闭打开的重新思考连接? 第二,我如何避免建立开放式连接?我应该为我的后端的每次呼叫打开一个连接,还是应该在我的应用程序启动时只打开一次与Reinspect的连接


“重新思考”看起来很有希望,但如果您能提供一点帮助,我们将不胜感激

您可以通过调用
来关闭连接。对
connect
返回的连接对象关闭
。只要完成后关闭这些连接,每次呼叫后端打开一个连接就可以了。(一般来说,RequireDB可以同时支持很多开放连接,除非它运行在低资源系统上,或者操作系统配置为限制开放连接的数量。)

我认为RequireDB现在没有办法做到这一点。我打开了一个GitHub问题:GitHub.com/referencedb/referencedb/issues/4873。同时,一个选项是使用
tcpkill
(或类似的东西)终止连接。

问题是,当出现错误时,我不再有连接对象。我可能会在错误捕捉器中建立这种断开连接,但我想知道,在建立连接后,我现在如何才能关闭它们,但在没有连接对象的情况下永远不会关闭它们。这就是为什么你应该在不再需要连接时立即关闭连接,当你仍然有连接对象的时候。那么在你不再有连接对象之后就不可能关闭连接了?也没有管理员或服务器端解决方案?这也是一个答案……我认为现在没有办法做到这一点。我打开了一个GitHub问题:。如果您确实需要终止这些连接,可以使用
tcpkill
(或类似工具)从两个程序外部终止连接。谢谢@mlucy。我认为这应该是答案。如果你把它作为答案发布,我会把它标记为解决方案。