1

私は次のようにrubyの「フォーク」オプションを使用しています。

pid1 = fork do
  pid1_output = `ruby scrape1.rb`
  puts "#{pid1_output}"
  puts ""
  exit
end

pid2 = fork do
  pid2_output = `ruby scrape2.rb`
  puts "#{pid2_output}"
  puts ""
  exit
end

pid3 = fork do
  pid3_output = `ruby scrape3.rb`
  puts "#{pid3_output}"
  puts ""
  exit
end

pid4 = fork do
  pid4_output = `ruby scrape4.rb`
  puts "#{pid4_output}"
  puts ""
  exit
end

Process.waitall

ここでの問題は、プロセスの1つ(例ruby scrape1.rb:)が失敗したり、変数にキャプチャできない大量のテキストを返したりする場合があることです... 4つのプロセスを同時に実行し、1つの端末ですべての出力を表示するにはどうすればよいですか?リアルタイムのウィンドウ?出力の順序が乱れる可能性があることは理解していますが、それで問題ありません。基本的に、各フォークプロセスのSTDOUTとSTDERRをメインプログラムに再ルーティングしたいと思います。スクレーパーを使用して、進行状況とエラーを追跡します。

4

1 に答える 1

2
fork do
  exec("ruby scrape1.rb")
end

fork do
  exec("ruby scrape2.rb")
end

fork do
  exec("ruby scrape3.rb")
end

fork do
  exec("ruby scrape4.rb")
end

Process.waitall
于 2012-09-29T11:44:50.700 に答える