0

Faraday をリクエスト クライアントとして使用し、次のように EM 同期で使用する事前定義されたアダプターを持つ ROR プロジェクトをリファクタリングしています。

  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.rb で FiberPool を有効にできることはわかっていますが、EM.synchrony を有効にするにはどうすればよいですか?

私は EM の基本的な知識を持つ Ruby の初心者ですが、次の意味についてはまだよくわかりません。

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

したがって、説明とサンプルは本当にありがたいです。

4

1 に答える 1

0

簡単です。application.rb の次の行のコメントを外すだけです。

config.middleware.insert_before Rails::Rack::Logger, Rack::FiberPool
于 2013-01-31T07:46:02.333 に答える