1, :timeout => 5) -6ren">
gpt4 book ai didi

ruby - MongoDB:什么是连接池和超时?

转载 作者:IT老高 更新时间:2023-10-28 13:23:09 24 4
gpt4 key购买 nike

所以我的乘客启动了我的 Rails 应用程序的 5 个实例

我使用 Connection.new("localhost", 3000, :pool_size => 1, :timeout => 5) 连接到 MongoDB

如果我只在启动我的 Rails 应用程序时产生开销,而不是每个请求,我为什么需要一个“连接池”?为什么单个进程需要多个连接?

超时的目的是什么?为什么我希望连接超时?它不应该在 Rails 进程的整个生命周期中持续存在吗?

好困惑……

这个问题是针对 Ruby 和 Mongo 的,但我猜它适用于其他语言/数据库。

最佳答案

您不需要在这里使用连接池。当您使用乘客时,只需通过捕获 start_worker_process 事件来确保每个实例使用单独的连接。这记录在驱动程序自述文件中。

连接池对于某些多线程应用程序很有用。 pool_size 是连接将处理的最大并发线程数,timeout 是在抛出异常之前线程可以等待可用套接字的最大秒数。

关于ruby - MongoDB:什么是连接池和超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2327416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com