连接突然出现问题

时间:2013-09-28 06:55:20

标签: ruby-on-rails mongodb mongoid moped

我有一个使用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.

查看源代码,看起来它在连接池代码中的某个地方是个问题,但我对它不够熟悉。

任何人都有这方面的经验吗?

1 个答案:

答案 0 :(得分:0)

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

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