require "parallel" # db からデータ取ってきて加工するメソッド def sequence(id) ... end def write_sequence(id) open("../data/#{id}.csv", "w"){ |f| sequence(id).each do |elem| f.puts elem.to_s end } end def all Parallel.map(@ids){ |id| write_sequence(id) } end
みたいな感じで書いてたらwriteのところでエラー出まくって本当にめんどくさかったので
write_sequence(ARGV[0])
とだけ書いたp.rbを用意して
Parallel.map(@ids) do |id| system "ruby p.rb #{id}" end
とかやったけど負けた気分になった.