我有以下初始化程序。
/config/initializers/database_connection.rb:
Rails.application.config.after_initialize do
ActiveRecord::Base.connection_pool.disconnect!
ActiveSupport.on_load(:active_record) do
config = Rails.application.config.database_configuration[Rails.env]
config['reaping_frequency'] = (ENV['DB_REAP_FREQ'] || 5).to_i # seconds
config['pool'] = (ENV['DB_POOL'] || 15).to_i
config['checkout_timeout'] = (ENV['DB_CHECKOUT_TIMEOUT'] || 25).to_i # seconds
ActiveRecord::Base.establish_connection(config)
end
end
我仍然收到以下错误:
ActiveRecord::ConnectionTimeoutError - could not obtain a database connection within 5.000 seconds (waited 6.940 seconds)
增加的超时(25 秒)将被忽略,并且超时在 5 秒后仍然发生。
我应该如何设置 checkout_timeout?
最佳答案
idk,如何通过配置对象设置 config.checkout_timeout
,但是它应该可以在 database.yaml 中实现,并且这个文件也应该被 erb 解析,允许你在其中使用 ENV 变量,比如这个:
production:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
checkout_timeout: <%= ENV['TIMEOUT'] %>
我也不知道通过哈希访问设置配置属性。仅通过属性
config.checkout_timeout = 5
然而,这两者都是可能的,这并不会让我感到惊讶。
并且不要忘记在 (spring stop
)
关于ruby-on-rails - Rails ActiveRecord checkout_timeout 设置被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27311711/
相关文章:
android - 如何在 Android Studio 中为单元测试设置自定义可绘制目录
django - 在管理员中将动态字段添加到 Django 的 export_as_csv 操作
tfs - 使用 Team Build 2013 拒绝门控 checkin
python - 将颜色条添加到 python 子图中,其中数据点的颜色取决于未绘制的第三个变量
java - twitter4j : Update filter of a running Stre
python - 如何在 scrapy 契约(Contract)中向请求添加属性