我正在重构一个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