2016-04-27 12 views
0

私は、webサーバとしてのpumaを持つheroku上のruby 2.2.0p0上で動作するrails app 3.2.22.2をデプロイしました。PukiをHerokuでRails 3.2.22.2とRuby 2.2で使用すると、スレッドセーフではありませんか?ポイントは?

Herokuのはピューマを愛し、それを使用する新しいアプリケーションをアドバイス:

https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server

プーマは、使用可能なCPUのより多くの利用 を作るために、ワーカープロセスに加えて、スレッドを使用しています。 コードベース全体がスレッドセーフである場合にのみ、Pumaのスレッドを利用できます。それ以外の場合は、依然としてPumaを使用することができますが、 はワーカープロセスによってのみスケールアウトする必要があります。

私の唯一のオプションは、一部の労働者を追加し、このように私のProcfileを設定することですので、私は私のレールのアプリ(実際に私のコード)を確保することができないと宝石はスレッドセーフです:

web: bundle exec puma -t 1:1 -p ${PORT:-3000} -e ${RACK_ENV:-development} 
worker: bundle exec rake jobs:work 

をジャスト場合には、私もよう設定VARSを設定しました:だから

=== myapp-staging Config Vars 
DATABASE_URL:   postgres://this:[email protected]:port/more 
LANG:     en_US.UTF-8 
MIN_THREADS:   1 
NEW_RELIC_LICENSE_KEY: key 
NEW_RELIC_LOG:   stdout 
PAPERTRAIL_API_TOKEN: key 
RACK_ENV:    staging 
RAILS_ENV:    staging 
RAILS_MAX_THREADS:  1 
SENSIBLE_DEFAULTS:  enabled 
WEBSOLR_URL:   https://index.websolr.com/solr/index 
WEB_CONCURRENCY:  1 

...私は1つだけのスレッドを使用することができれば、ピューマは私のアプリに最適なソリューションですか?

ありがとうございました!

PS:その質問What configuration for Rails 3.2.22.2 + Puma + Heroku?

答えて

0

レールのアプリではないスレッドセーフ(バージョン< 4.x)をピューマを使用しない点はありませんを見ているが、低速のクライアントの問題を処理するためにしてください。

さらに、Webの並行性を1に設定することが唯一の選択です。

関連する問題