如何启用基于法拉第和事件机同步的高性能http客户端



我正在重构一个ROR项目,该项目使用Faraday作为请求客户端,并具有预定义的适配器,可与EM同步使用,如下所示:

  def which_faraday_adapter?
    if Utils::ModuleLoaded.synchrony? && Utils::ModuleLoaded.fiberpool?
      :em_synchrony
    else
      :net_http
    end
  end
  module ModuleLoaded
    def self.synchrony?
      defined?(EM::Synchrony) && EM.reactor_running?
    end
    def self.fiberpool?
      CfConsole::Application.config.middleware.middlewares.include?(Rack::FiberPool)
    end
  end 

我知道我可以在我的config/application中启用FiberPool。但是如何启用em .sync ?

我是ruby的新手,对EM有基本的了解,但我仍然不太清楚:

defined?(EM::Synchrony) && EM.reactor_running? 

所以任何解释和示例都是非常感谢的

很简单,只需在application.rb:

中取消这一行的注释即可。
config.middleware.insert_before Rails::Rack::Logger, Rack::FiberPool

最新更新