1

我正在试验“async rails”,以帮助减轻使用缓慢的 3rd-party 服务的痛苦。

宝石文件

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

配置.ru

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

有谁知道 Heroku 的 Cedar 堆栈上可以使用多少个 Ruby Fiber?或者如何去确定这样的事情?

4

1 回答 1

1

和你一样,我目前正在尝试使用 ruby​​ 和纤维来提高应用程序的性能。从我所阅读和思考的内容来看,您可以使用的纤维数量应该几乎没有限制。

我想记住(请自己检查),每个测功机最多可以使用 500 Mb 的 RAM。每根光纤都会为您的应用程序的 RAM 使用量增加几 kb(我认为是 2kb)。只要您的应用程序不使用完整的 500Mb,即使使用 1000 根光纤也应该没问题。

但是您应该在之前达到性能/并发边界,因为您的应用程序一次仍然只处理一个纤程。在您的情况下,它将取决于外部服务。

于 2013-04-09T21:20:24.093 回答