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.
97 98 99 100 |
# File 'lib/httpx/adapters/faraday.rb', line 97 def initialize @session = Session.new @handlers = [] end |
Instance Method Details
#enqueue(request) ⇒ Object
102 103 104 105 106 |
# File 'lib/httpx/adapters/faraday.rb', line 102 def enqueue(request) handler = ResponseHandler.new(request) @handlers << handler handler end |
#run ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/httpx/adapters/faraday.rb', line 108 def run requests = @handlers.map { |handler| build_request(handler.env) } env = @handlers.last.env = { connect_timeout: env.request.open_timeout, operation_timeout: env.request.timeout, }.reject { |_, v| v.nil? } = { ssl: env.ssl, timeout: , } = { uri: env.request.proxy } session = @session.with() session = session.plugin(:proxy).with_proxy() if env.request.proxy responses = session.request(requests) responses.each_with_index do |response, index| handler = @handlers[index] handler.on_response.call(response) handler.on_complete.call(handler.env) end end |