我在 Heroku 上部署的应用程序遇到问题。
它在本地环境上运行良好,但部署到 Heroku 时经常会出现应用程序错误。
日志中的异常是:
ActiveRecord::ConnectionTimeoutError(无法在 5.000 秒内获取数据库连接(已等待 5.000 秒))
控制器和模型没什么花哨的,而是简单的 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
但这没有帮助。
您知道有什么可以帮忙吗?
您的数据库池不是问题。这是一个已知的轨道问题。如果您使用的是 Rails 4.0.2,则声明是在 Gemfile 中使用 Rails master。我也遇到这个问题,但是我还没有尝试过这个解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)