在ruby中一次读取N行文件

Sam*_*Sam 2 ruby file-io fork

我有一个大文件(数百兆)由文件名组成,每行一个.

我需要循环遍历文件名列表,并为每个文件名分叉一个进程.我希望一次最多8个分叉进程,我不想一次将整个文件名列表读入RAM.

我甚至不确定从哪里开始,任何人都可以帮助我吗?

gle*_*man 6

File.foreach("large_file").each_slice(8) do |eight_lines|
  # eight_lines is an array containing 8 lines.
  # at this point you can iterate over these filenames
  # and spawn off your processes/threads
end
Run Code Online (Sandbox Code Playgroud)