2012-04-04 66 views
10

Ten sam skrypt inny błąd. Może to być związane bardziej z moją siecią, a nie z moim kodem. Scenariusz jest następujący:'rescue in rbuf_fill': Timeout :: Error (Timeout :: Error)

#!/usr/bin/env ruby -rubygems 

require File.join(File.dirname(__FILE__), 'authentication') 

require "csv" # faster_csv (ruby 1.9) 

lines = CSV.read(File.join(File.dirname(__FILE__), 'karaoke.csv')) # Exported an Excel file as CSV 

lines.slice!(0) # remove header line 

collection = StorageRoom::Collection.find('collection ID') 
Song = collection.entry_class 

lines.each do |row| 
    karaoke = Song.new(:artist => row[0], :song => row[1], :genre => row[2], :file => StorageRoom::File.new_with_filename("#{karaoke.artist}#{karaoke.song}.mov")) 

    if karaoke.save 
    puts "Song saved: #{karaoke.artist}, #{karaoke.song}, #{karaoke.genre}" 
    else 
    puts "Song could not be saved: #{karaoke.errors.join(', ')}" 
    end 
end 

a błąd jest:

/usr/local/lib/ruby/1.9.1/net/protocol.rb:140:in `rescue in rbuf_fill': Timeout::Error (Timeout::Error) 
from /usr/local/lib/ruby/1.9.1/net/protocol.rb:134:in `rbuf_fill' 
from /usr/local/lib/ruby/1.9.1/net/protocol.rb:116:in `readuntil' 
from /usr/local/lib/ruby/1.9.1/net/protocol.rb:126:in `readline' 
from /usr/local/lib/ruby/1.9.1/net/http.rb:2219:in `read_status_line' 
from /usr/local/lib/ruby/1.9.1/net/http.rb:2208:in `read_new' 
from /usr/local/lib/ruby/1.9.1/net/http.rb:1191:in `transport_request' 
from /usr/local/lib/ruby/1.9.1/net/http.rb:1177:in `request' 
from /usr/local/lib/ruby/1.9.1/net/http.rb:1170:in `block in request' 
from /usr/local/lib/ruby/1.9.1/net/http.rb:627:in `start' 
from /usr/local/lib/ruby/1.9.1/net/http.rb:1168:in `request' 
from /usr/local/lib/ruby/gems/1.9.1/gems/httparty-0.8.1/lib/httparty/request.rb:73:in `perform' 
from /usr/local/lib/ruby/gems/1.9.1/gems/httparty-0.8.1/lib/httparty.rb:391:in `perform_request' 
from /usr/local/lib/ruby/gems/1.9.1/gems/httparty-0.8.1/lib/httparty.rb:359:in `post' 
from /home/hanleyhansen/Desktop/thriventures-storage_room_gem-f7015ed/lib/storage_room/model.rb:69:in `block (2 levels) in create' 
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:403:in `_run__3801264735883484179__create__2558870880708463764__callbacks' 
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:405:in `__run_callback' 
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:385:in `_run_create_callbacks' 
from /home/hanleyhansen/Desktop/thriventures-storage_room_gem-f7015ed/lib/storage_room/model.rb:68:in `block in create' 
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:403:in `_run__3801264735883484179__save__2558870880708463764__callbacks' 
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:405:in `__run_callback' 
from /usr/local/lib/ruby/gems/1.9.1/gems/activesupport-3.2.2/lib/active_support/callbacks.rb:385:in `_run_save_callbacks' 
from /home/hanleyhansen/Desktop/thriventures-storage_room_gem-f7015ed/lib/storage_room/model.rb:67:in `create' 
from /home/hanleyhansen/Desktop/thriventures-storage_room_gem-f7015ed/lib/storage_room/model.rb:61:in `save' 
from import_csv.rb:17:in `block in <main>' 
from import_csv.rb:14:in `each' 
from import_csv.rb:14:in `<main>' 

jestem zainteresowany w nauce, dlaczego wystąpił ten błąd, jak również rozwiązania. Z góry dziękuję!

Odpowiedz

15

Znaleziono to podczas przeglądania sieci. Nadzieje, że pomaga komuś! Setting a longer timeout

Oto jak można ustawić limit czasu w Net :: HTTP API:

require 'net/http' 

http = Net::HTTP.new(@host, @port) 
http.read_timeout = 500 
+0

Oh man, to przyszedł w samą porę. Rocka do dzielenia się. – zehelvion