gpt4 book ai didi

ruby-on-rails - rails 连接池 5

转载 作者:行者123 更新时间:2023-12-03 20:22:37 33 4
gpt4 key购买 nike

我在使用 rails 5 rc1 时遇到了这个问题。有谁知道如何在环境文件中配置它以及 rails 5 事件记录的默认连接池大小是多少。

   Puma caught this error: could not obtain a connection from the pool within 5.000 seconds (waited 5.000 seconds); all pooled connections were in use (ActiveRecord::ConnectionTimeoutError)
/home/bsethi/.rvm/gems/ruby-2.2.2/gems/activerecord-5.0.0.rc1/lib/active_record/connection_adapters/abstract/connection_pool.rb:202:in `block in wait_poll'
/home/bsethi/.rvm/gems/ruby-2.2.2/gems/activerecord-5.0.0.rc1/lib/active_record/connection_adapters/abstract/connection_pool.rb:193:in `loop'
/home/bsethi/.rvm/gems/ruby-2.2.2/gems/activerecord-5.0.0.rc1/lib/active_record/connection_adapters/abstract/connection_pool.rb:193:in `wait_poll'
/home/bsethi/.rvm/gems/ruby-2.2.2/gems/activerecord-5.0.0.rc1/lib/active_record/connection_adapters/abstract/connection_pool.rb:154:in `internal_poll'
/home/bsethi/.rvm/gems/ruby-2.2.2/gems/activerecord-5.0.0.rc1/lib/active_record/connection_adapters/abstract/connection_pool.rb:278:in `internal_poll'
/home/bsethi/.rvm/gems/ruby-2.2.2/gems/activerecord-5.0.0.rc1/lib/active_record/connection_adapters/abstract/connection_pool.rb:148:in `block in poll'

最佳答案

在所有 Rails 版本中,我都使用了在 config/database.yml 中配置的连接池

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

所以只需增加它:
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 10
timeout: 5000

让我知道它是否会有所帮助。

更新

将您的值放入 environment/*.rb 文件似乎并不那么简单。
恕我直言,最接近的方法是使用 @Alessandro Caetano 建议的 ENV 变量。

社区为此类操作提供了一个 gem : rais-dotenv

您可以创建 .env.*每个环境的文件,然后 dotenv 将相应地加载它。

下面是一个例子:
# .env.development
main_db_database=main_db_development
main_db_pool=5
main_db_host=localhost
main_db_port=3306
main_db_user=user
main_db_password=password

然后在你的database.tml
development: &main_db
adapter: mysql2
encoding: utf8
reconnect: true
database: <%= ENV['main_db_database'] %>
pool: <%= ENV['main_db_pool'] ? ENV['main_db_pool'].to_i : 5 %>
host: <%= ENV['main_db_host'] %>
port: <%= ENV['main_db_port'] %>
username: <%= ENV['main_db_username'] %>
password: <%= ENV['main_db_password'] %>

关于ruby-on-rails - rails 连接池 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004673/

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