我对红宝石非常新, 正在学习如何用多个线条进行处理。 我所做的是使用 Nokogiri 分析一个 170mbxml 文件, 并且将数据库( Postgressql) 插入到我的. each () 中的新线内。 请建议一个更好的方法来处理这个非常大的文件, 并且用多个线条来做。 这里是我目前拥有的 。
conn = PGconn.connect("localhost", 5432, "", "", "oaxis","postgres","root")
f = File.open("metadata.xml")
doc = Nokogiri::XML(f)
counter = 0
threadArray = []
doc.xpath( //Title ).each do |node|
threadArray[counter] = Thread.new{
titleVal = node.text
random_string = (0...10).map{ ( a .. z ).to_a[rand(26)] }.join
conn.prepare( ins +random_string, insert into sample_tbl (title) values ($1) )
conn.exec_prepared( ins +random_string, [titleVal])
puts titleVal+" ==>"+random_string+ "
"
counter += 1
}
end
threadArray.each {|t| t.join}
f.close