16

通常、プールサイズを次のように設定します

development:
  adapter: postgresql
  encoding: unicode
  database: openkitchen_development
  username: rails
  host: localhost
  pool: 10
  password:

database.yml で。ただし、heroku は構成ファイルを置き換えます。girl_friday を使用してバックグラウンドのデータベース作業を行っており、スレッド プールのサイズを増やす必要があります。

4

5 に答える 5

27

heroku config にpoolクエリ パラメータを追加するだけです。DATABASE_URLheroku アプリでプール サイズを 15 に設定するには、次のようにします。

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

于 2012-05-07T14:43:09.663 に答える
12

ここでの他の回答で説明されているように、URL params メソッドを使用することは、Heroku では推奨されません。彼らはいつでもこの 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
于 2013-04-15T15:09:37.987 に答える
5

Heroku には、プール サイズの管理に関する優れた記事があります - https://devcenter.heroku.com/articles/concurrency-and-database-connections#connection-pool

于 2013-04-23T16:22:59.623 に答える
3

remveeの答えは必要なものの核心に達しますが、彼のコマンドがコンソールをハングさせたので、これを手動で行う方法を書き留めようと思いました.

heroku config

DATABASE_URL キーを探します。この例では、次のようになります。

DATABASE_URL:            mysql2://something.example.com/stuff?reconnect=true

URL の末尾に「&pool=10」を追加します (URL には既にパラメーターがあるため、? の代わりに & を使用します)。

heroku config:add DATABASE_URL=mysql2://something.example.com/stuff?reconnect=true&pool=10
于 2012-08-21T17:29:43.560 に答える
2

それほど簡単ではありませんが、独自のビルドパックを作成してみることができます。

フォークする必要があります: https://github.com/heroku/heroku-buildpack-ruby

次に、以下を変更します: https://github.com/heroku/heroku-buildpack-ruby/blob/master/lib/language_pack/ruby.rb#L325-387

必要なプール サイズを追加するだけです。

次に、カスタム ビルドパックを使用して新しい Heroku アプリを作成できます。

heroku create --stack cedar --buildpack https://github.com/yourgithubusername/heroku-buildpack-ruby.git

それはそれである必要があります!

于 2012-04-07T02:40:23.133 に答える