X-Combinator

Avatar

making the human scalable

run multiple rake tasks simultaneously

Here’s a quick and simple tip for using threads and Rakefiles:

task :one do
  puts "start one"
  sleep 10 * rand
  puts "one done"
end
 
task :two do
  puts "start two"
  sleep 10 * rand
  puts "two done"
end
 
task :three do
  puts "start three"
  sleep 10 * rand
  puts "three done"
end
 
desc "Submit all feed to amazon for SITE"
task :do_all do
  threads = []
  %w{one two three}.each do |number|
    threads << Thread.new(number) do |my_number|
      Rake::Task[my_number].invoke
    end
  end
  threads.each { |thread| thread.join } 
end

Running it gives something like the following:

$ rake do_all
start one
start two
start three
three done
one done
two done
del.icio.us:run multiple rake tasks simultaneously digg:run multiple rake tasks simultaneously reddit:run multiple rake tasks simultaneously

No Comments, Comment or Ping

Reply to “run multiple rake tasks simultaneously”