class MyJobDojinEventMachine
for EventMachine
Private Instance Methods
do_connect()
click to toggle source
# File lib/lib/job.rb, line 689 def do_connect return if file_already_saved? # if @machine.connection_exceed? #コネクション限界を超えていないか? # @machine.retry(self) # print "E".red.bold # return # end @http = EventMachine::Protocols::HttpClient. request( :host => @args[:server], :port => @args[:port], :request => @args[:path], :cookie => @args[:cookie]['Cookie'] ) @machine.connection_count! @http.errback{ begin ensure @machine.connection_end! end } @http.callback {|response| begin if response[:status] == 200 # 200 はレスポンスの中身を保存する save_content(response[:content]) elsif response[:status] == 503 || response[:status] == 500 || response[:status] == 403 # 503/500/403はリトライする @args[:try] += 1 @machine.retry(self) if @args[:try] < 6 elsif response[:status] == 404 # 404は終了する else puts response[:status].to_s.red.bold puts response[:headers].to_s.red.bold end ensure @machine.connection_end! end } end