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从来没有对这种延迟负责。 –