Parent

Included Modules

EventMachine::MultiRequest

EventMachine based Multi request client, based on a streaming HTTPRequest class, which allows you to open multiple parallel connections and return only when all of them finish. (i.e. ideal for parallelizing workloads)

Example

 EventMachine.run {
  
  multi = EventMachine::MultiRequest.new
   
  # add multiple requests to the multi-handler
  multi.add(EventMachine::HttpRequest.new('http://www.google.com/').get)
  multi.add(EventMachine::HttpRequest.new('http://www.yahoo.com/').get)
   
   multi.callback  {
      p multi.responses[:succeeded]
      p multi.responses[:failed]
    
      EventMachine.stop
   }
 }

Attributes

requests[R]
responses[R]

Public Class Methods

new() click to toggle source
    # File lib/em-http/multi.rb, line 31
31:     def initialize
32:       @requests = []
33:       @responses = {:succeeded => [], :failed => []}
34:     end

Public Instance Methods

add(conn) click to toggle source
    # File lib/em-http/multi.rb, line 36
36:     def add(conn)
37:       @requests.push(conn)
38: 
39:       conn.callback { @responses[:succeeded].push(conn); check_progress }
40:       conn.errback  { @responses[:failed].push(conn); check_progress }
41:     end

Protected Instance Methods

check_progress() click to toggle source

invoke callback if all requests have completed

    # File lib/em-http/multi.rb, line 46
46:     def check_progress
47:       succeed if (@responses[:succeeded].size + @responses[:failed].size) == @requests.size
48:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.