耙相当于make -j(--jobs)

时间:2015-01-28 15:51:24

标签: ruby multithreading rake rakefile

make命令允许-j--jobs)选项记录如下:

-j [jobs], --jobs[=jobs]
     Specifies the number of jobs (commands) to run simultaneously.  If there is more than one -j  option,
     the  last  one  is effective.  If the -j option is given without an argument, make will not limit the
     number of jobs that can run simultaneously.

即使手机有多个核心和/或处理器,我希望我的构建系统能够处理多线程处理。

设置rake的最佳方法是什么,以便我可以确保最多3个任务一直在运行?

2 个答案:

答案 0 :(得分:2)

是的,rake允许作业并行运行。要设置并行级别,请使用-j开关。来自rake --help

-j, --jobs [NUMBER] Specifies the maximum number of tasks to execute in parallel. (default is number of CPU cores + 4)

但是,作业本身必须写成多任务,而不是任务。所以不要像以下那样定义任务:

namespace :mynamespace  do
  desc "description"
  task task_name: :environment do
    your_code
  end
end

使用多任务:

namespace :mynamespace  do
  desc "description"
  multitask task_name: :environment do
    your_code
  end
end

答案 1 :(得分:1)

有关于rake MultiTask的博文,但它支持-j参数-m进行并行化。