我在 Heroku 上部署的应用程序遇到问题。 它在本地环境上运行良好,但部署到 Heroku 时经常出现应用程序错误。
日志中的异常是: ActiveRecord::ConnectionTimeoutError(无法在 5.000 秒内获取数据库连接(等待了 5.000 秒))
Controller 和模型没什么花哨的,而是简单的 CRUD 操作。
该应用程序是使用 Rails 4 构建的,它使用标准的 heroku postgres 数据库插件和 WEBrick 服务器。
我尝试像这样设置配置:
#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 # seconds
config['pool'] = ENV['DB_POOL'] || 10
config['timeout'] = ENV['DB_TIMEOUT'] || 10
ActiveRecord::Base.establish_connection(config)
end
end
但这并没有帮助。
您知道什么可以帮助您吗?
最佳答案
您的数据库池不是问题。这是known rails issue 。如果您使用的是 Rails 4.0.2,则声明是在 Gemfile 中使用 Rails master。我也遇到了这个问题,但是我还没有尝试过这个解决方案。
关于heroku - Heroku 与 Postgres 上的 ConnectionTimeoutError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102115/