Class: Faraday::Adapter::HTTPX::ParallelManager
- Inherits:
-
Object
- Object
- Faraday::Adapter::HTTPX::ParallelManager
- Includes:
- RequestMixin
- Defined in:
- lib/httpx/adapters/faraday.rb
Defined Under Namespace
Classes: ResponseHandler
Instance Method Summary collapse
- #enqueue(request) ⇒ Object
-
#initialize ⇒ ParallelManager
constructor
A new instance of ParallelManager.
- #run ⇒ Object
Constructor Details
#initialize ⇒ ParallelManager
Returns a new instance of ParallelManager.
160 161 162 163 |
# File 'lib/httpx/adapters/faraday.rb', line 160 def initialize @session = Session.new @handlers = [] end |
Instance Method Details
#enqueue(request) ⇒ Object
165 166 167 168 169 |
# File 'lib/httpx/adapters/faraday.rb', line 165 def enqueue(request) handler = ResponseHandler.new(request) @handlers << handler handler end |
#run ⇒ Object
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/httpx/adapters/faraday.rb', line 171 def run env = @handlers.last.env session = @session.with((env)) session = session.plugin(:proxy).with(proxy: { uri: env.request.proxy }) if env.request.proxy session = session.plugin(OnDataPlugin) if env.request.stream_response? requests = @handlers.map { |handler| session.build_request(*build_request(handler.env)) } if env.request.stream_response? requests.each do |request| request.response_on_data = env.request.on_data end end responses = session.request(*requests) Array(responses).each_with_index do |response, index| handler = @handlers[index] handler.on_response.call(response) handler.on_complete.call(handler.env) end end |