如何在heroku上增加ActiveRecord线程池大小

bra*_*ing 16 activerecord connection-pooling heroku

通常我会将池大小设置为

development:
  adapter: postgresql
  encoding: unicode
  database: openkitchen_development
  username: rails
  host: localhost
  pool: 10
  password:
Run Code Online (Sandbox Code Playgroud)

在database.yml中.但是heroku会替换配置文件.我正在使用girl_friday做后台数据库工作,需要增加线程池大小.

rem*_*vee 27

只需在heroku配置中添加一个pool查询参数即可DATABASE_URL.要在heroku应用程序中将池大小设置为15,请使用以下命令:

heroku config -s | awk '/^DATABASE_URL=/{print $0 "?pool=15"}' | xargs heroku config:add


epr*_*hro 12

对于它的价值,Heroku不推荐使用其他答案中描述的URL params方法.他们保留随时重置或更改此URL的权利,无论如何,对于Rails构建行为,可能会长期删除此行为.

通过初始化后应用程序回调设置其他参数是根据此开发中心文章修改heroku-postgresql数据库配置的推荐方法.

在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['pool']              = 10
    ActiveRecord::Base.establish_connection(config)
  end
end
Run Code Online (Sandbox Code Playgroud)