0

Feedjira で RSS ストリームをパースします。メソッドを使用すると、fetch_and_parseブロックされて応答しないことがあります。

手動の縁石ダウンロードでも同じことが起こります。

私はループで書いています:

@my_logger.info "--- Before perform ---"
easy = Curl::Easy.new
easy.follow_location = true
easy.max_redirects = 3 
easy.connect_timeout = 120
easy.url = url
easy.useragent = "Ruby/Curb"
easy.perform
@my_logger.info "--- After perform ---"
doc = easy.body_str
easy.close

しばらくすると (1 日または 1 時間)、プロセスが停止し、easy.perform応答しなくなります。たとえば、出力を処理--- Before perform ---し、他には何もありません。

4

1 に答える 1

1

ランダムに発生するネットワークの問題に関連している可能性があります。

タイムアウトを使用すると、長時間実行されるタスクでこの種の状況をスキップできます。

require 'timeout'
begin
  Timeout.timeout(5) do      
    easy.perform
  end
rescue Timeout::Error
  puts 'timeout'
end
于 2014-09-02T08:52:17.520 に答える