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

一段时间后(可能是一天或一个小时),进程停止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 回答