require 'work_queue' wq = WorkQueue.new(5) i = 1 %w{foo bar baz bun}.each do |file| i2 = i wq.enqueue_b do #move file to another directory ImportFile.new(file, i2).run end i += 1 end wq.join puts "I: #{i}" class InputFile def initialize puts "In InputFile" end def run puts "Processing file" end end # OUTPUT # # DevNull work_queue ruby work_queue_test.rb # I: 5