0
刮此代碼本地工作正常,但在Heroku是由於請求超時時間超過30秒時:如何加快Rails的
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從來沒有對這種延遲負責。 –