0
에서 긁어 속도를하지만, Heroku가에 의한 요청 제한 시간에 30 초 이상 걸리는 :방법이 코드는 로컬에서 잘 작동 레일
if @url
@arr = Array.new
begin
doc = Nokogiri::HTML(open(@url))
doc.css(".new-cars-results-box").each do |item|
hash = Hash.new
type = item.at_css(".new-car-name").text
link = "http://uae.yallamotor.com"+item.at_css(".new-car-name")[:href]
@arr << [link,type]
end
rescue
end
end
가 어떻게이 속도를 높일 수 있습니다?
코드가 최적이 아니지만 더 느리게 실행되도록하는 코드는 없습니다. 나는 당신의 환경이 Heroku에 관한 문제라고 제안합니다. "[mcve]"와 링크 된 페이지를 읽으십시오. 우리는 당신이 파싱하는 것을 추측하도록 요청하고 있으며, 이는 처리 속도에 직접적인 영향을 줄 수 있습니다. 맨손으로'구조 '를하는 것은 좋은 습관이 아니지만 다시는 속도에 영향을 미치지 않아야합니다. (예외를 무시하고 있는지 확인하기 위해'rescue' 메시지를 출력하십시오.) –
또한 Nokogiri는 어느 위치에서나 같은 속도로 실행되지만'open'은 그렇지 않을 수도 있습니다. 'open '은 Nokogiri의 일부가 아니며, Nokogiri가 페이지 내용을 얻기 위해 읽는 파일 핸들 만 전달합니다. 해당 파일 스트림을 여는 데 시간이 오래 걸리거나 천천히 데이터를 먹이는 경우 Nokogiri가 처리를 시작할 때까지 어느 정도 시간이 걸릴 수 있지만 Nokogiri는 그 지연에 책임이 없습니다. –