2014-09-02 10 views
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 ---이며 그 밖의 것은 없습니다.

답변

1

무작위로 발생하는 네트워크 문제와 관련 될 수 있습니다.

시간 초과를 사용하면 장시간 실행되는 작업에서 이러한 상황을 피할 수 있습니다.

require 'timeout' 
begin 
    Timeout.timeout(5) do  
    easy.perform 
    end 
rescue Timeout::Error 
    puts 'timeout' 
end