我正在尝试使用“async rails”,以帮助缓解使用慢速第三方服务的痛苦。
的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 Fibers?或者如何确定这样的事情?
答案 0 :(得分:1)
和你一样,我正在尝试使用红宝石和纤维来提高应用性能。从我所阅读和想到的内容来看,你可以使用的纤维量几乎没有限制。
我想要记住(请自行检查),每个dyno可以使用高达500 Mb的RAM。每根光纤为你的应用程序的RAM使用量增加几kb(我认为2kb)。只要您的应用程序不使用完整的500Mb,即使使用1000根光纤也应该没问题。
但是之前你应该达到性能/并发边界,因为你的应用程序一次只能处理一个光纤。在您的情况下,它将取决于外部服务。