heroku - Heroku 与 Postgres 上的 ConnectionTimeoutError

标签 heroku ruby-on-rails-4 heroku-postgres

我在 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/

相关文章:

node.js - 当heroku更改DATABASE_URL时如何处理postgres连接

python - Heroku Django db postgres 错误

JavaScript 无法在 Heroku Cedar stack Rails 应用程序上正确加载

ruby - 在一个 heroku 应用程序中独立扩展服务

ruby-on-rails-4 - 在 Heroku 临时帐户上未正确检索 Google Auth 凭据

python - Django Postgres 连接池

ruby-on-rails - 配置 RubyMine 远程连接到 Heroku PostgreSQL

mysql - 使用 mysql 数据库将 Ruby on Rails 应用程序部署到 Heroku

mongodb - MongoDB 中动态字段的用途是什么?

macos - Postgres.app : pg_restore hangs