我想要并行执行两个Rake任务。他们都是第三项任务的依赖:
task :first_task do
sleep 10
end
task :second_task do
sleep 10
end
desc "execute two tasks in parallel"
multitask :third_task => [:first_task, :second_task] do
puts "finished first one and second one!"
end
运行rake two_at_once之后,我执行了pstree来查看进程树。我期望看到在执行过程下面产生两个进程" rake two_at_once,"一个用于first_task,另一个用于second_task。相反,我只看到一个rake过程:
我是否只看到一个进程(即使当前正在执行first_task和second_task)因为Ruby进程00640中有多个线程?如果是这样,为什么Rake使用多个线程而不是多个进程?