【问题标题】:Sudden problems connecting连接突然出现问题
【发布时间】:2013-09-28 06:55:19
【问题描述】:

我有一个使用 MongoDb 的 Rails 4.0 应用程序。我使用 Mongoid 作为 ORM。直到今天下午,一切正常。

突然间,我遇到了随机的超时错误。

首先来自 MOPED 的消息:

MOPED: Retrying connection attempt 1 more time(s). runtime: n/a

然后是一个

Timeout::Error is thrown: Exception: Waited for item but none was pushed.

看源码,好像是连接池代码的某个地方出了问题,不过我对它还不够熟悉,不好说。

有没有人遇到过这个问题?

【问题讨论】:

  • 我今天刚遇到这个问题......吓坏了几个小时,并认为这可能是因为我在墨西哥这周并且代理很奇怪。如果我可以投票 10 次,我会的。

标签: ruby-on-rails mongodb mongoid moped


【解决方案1】:

你是在什么上面运行铁轨吗?杰鲁比?彪马?西奇克? 似乎存在一个问题,您在池中没有足够的连接..,或者代码可能在完成后没有释放连接(仍然不太可能发生。 默认连接池大小为 5,因此如果您有超过 5 个并发请求,在多线程服务器(如 puma)中,您将开始收到这些错误。我认为您应该做的是将池中的连接数(您可以在 mongoid.yml pool_size 中传递一个选项)增加到 20 或其他东西。并查看错误是否仍在发生。

如果您仍然认为代码没有将连接释放回池,您可以在 github https://github.com/mongoid/moped/issues/new 上打开一个问题

【讨论】:

  • 我正在使用 WEBrick 在 Ruby 2.0 上运行相当标准的安装。我认为在阅读此内容后:groups.google.com/forum/#!topic/mongoid/yesQ2AHtPyI pool_size 选项不再适用。但是,将其设置为更高的值后,问题就消失了。感谢您的建议!
  • 那是旧的......在 mongoid 4 上。你应该设置 pool_size 。如果您在 WEBrick 上运行 MRI,我只是不明白您是如何泄漏连接的。这太奇怪了。
  • 这正是我的问题。我不明白这怎么会发生。我很想得到一个解释,以便我更好地理解。
猜你喜欢
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-13
  • 2014-05-16
相关资源
最近更新 更多