0

Thin から Unicorn に移行中です。特定の Gem パッケージをロードすることを除いて、ほとんどの Web サイトで成功しました。パッケージそのものではなく、Unicorn が Initializer ファイルと対話する方法だと思います。

これが私の現在のunicorn.rbセットアップです。Mongoid を使用しているため、before_fork と after_fork は使用しませんでした。

worker_processes 3
timeout 30
preload_app true

初期化ファイルは/config/initializers/asin.rb

ASIN::Configuration.configure do |config|
  config.secret        = ENV['AMAZON_SECRET']
  config.key           = ENV['AMAZON_KEY']
  config.associate_tag = ENV['AMAZON_TAG']
  config.version       = ENV['AMAZON_VERSION']
end

Rails はイニシャライザ ファイル内の情報を自動的にロードしますか?

4

2 に答える 2

3

使用する予定で、ロード時に開いているソケットがある場合は、時間をかけてユニコーンフックを作成しない限り、問題が発生する可能性がpreload_app true ありますbefore_forkafter_fork

preload_appのUnicorn ドキュメントでは、これについて詳しく説明しています。

[プリロード] は、コピー オン ライトに適した GC を使用する場合にメモリを節約できますが、ソケットなどのリソースがロード時にマスター プロセスによって開かれ、複数の子プロセスによって共有されると、問題が発生する可能性があります。

一般に、preload_app falseすべてが機能していることを確認するまで、そのままにしておくことをお勧めします。展開を最適化する準備ができたら、アプリをプリロードするために必要な手順を実行することを検討できます。

于 2012-10-29T00:42:42.140 に答える
0

うん。に入れる限り、config/initializersロードされます。

于 2012-10-27T14:28:22.610 に答える