我正在重构一个 ROR 项目,该项目使用法拉第作为请求客户端,并具有预定义的适配器以与 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.rb 中启用 FiberPool,但是如何启用 EM.synchrony?
我是红宝石新手,具有 EM 的基本知识,但我仍然不太清楚以下内容的含义:
defined?(EM::Synchrony) && EM.reactor_running?
因此,非常感谢任何解释和示例。