gpt4 book ai didi

ruby-on-rails - ActiveRecord::ConnectionTimeoutError 偶尔发生

转载 作者:行者123 更新时间:2023-12-01 16:10:26 26 4
gpt4 key购买 nike

每当我有一个使用 ActiveRecord 的应用程序时,我都会收到此 ConnectionTimeoutError - 但总是在某个未知的时间段之后

ActiveRecord::ConnectionTimeoutError (could not obtain a database connection within 5 seconds.  The max pool size is currently 30; consider increasing it.):

之前设置为 5,我们已经增加了它,不可能同时使用 30 个连接。我们使用 ActiveRecord 的唯一目的是 session 存储。

我们的database.yml 文件如下所示:

development:
adapter: sqlite3
database: db/development.sqlite3
pool: 30
timeout: 5000

(测试和生产设置相同)

<小时/>

我一直在谷歌上搜索这一事件,刚刚发现了这个帖子:

https://groups.google.com/forum/#!msg/copenhagen-ruby-user-group/GEHgi_WudmM/gnCiwWqmVfMJ

其中提到 ActiveRecord 在连接完成后不会将连接检查回池中?真的吗?我需要手动管理连接吗?

我很感激任何建议!!

编辑我可能应该提到我正在运行 Rails 3.1.3

最佳答案

Rails 有一个名为 ActiveRecord::ConnectionAdapters::ConnectionManagement 的中间件,它会清除每个请求的事件连接,这样它们就不会留下来。检查你的中间件以确保你有这个(默认情况下),运行“rake middleware”。您不必手动管理连接来回答最后一个问题。

在控制台中运行它

   ActiveRecord::Base.clear_active_connections!

关于ruby-on-rails - ActiveRecord::ConnectionTimeoutError 偶尔发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045495/

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