1

遅いサードパーティのサービスを使用することの苦痛を和らげるために、私は「非同期レール」を実験しています。

Gemfile

gem 'eventmachine'
gem 'rack-fiber_pool',  :require => 'rack/fiber_pool'
gem 'em-synchrony', :require => ['em-synchrony',
                                 'em-synchrony/em-http',
                                 'em-synchrony/activerecord']

config.ru

require ::File.expand_path('../config/environment',  __FILE__)
use Rack::FiberPool, :size => 6
run MyApp::Application

HerokuのCedarスタックで使用できるRubyファイバーの数を知っている人はいますか?または、そのようなことを決定する方法は?

4

1 に答える 1

1

あなたと同じように、私は現在、アプリのパフォーマンスを向上させるためにルビーとファイバーを実験しています。そして、私が読んで覚えていると思うことから、使用できる繊維の量にほとんど制限はないはずです。

各dynoは最大500MbのRAMを使用できることを覚えておいてください(自分で確認してください)。各ファイバーは、アプリのRAM使用量に数kb(2kbだと思います)を追加します。アプリが500Mbを完全に使用しない限り、1000本のファイバーでも問題ありません。

ただし、アプリは一度に1つのファイバーしか処理しないため、パフォーマンスと同時実行性の境界に達する必要があります。あなたの場合、それは外部サービスに依存します。

于 2013-04-09T21:20:24.093 に答える