我有一个ruby脚本,我想从中启动4个rake任务以并行运行。

我该怎么做呢?我想我需要 fork 并分离一个进程,但是我需要确切的语法。

最佳答案

最好让Rake处理并行性。您可以使用“多任务”来完成。在Rakefile中:

desc "Start everything."
multitask :start => [ 'mongodb:start', 'haystack:start' ]

Background and source.

否则,假设您是从Rakefile外部执行此操作,则可以使用像这样的可怕代码,它不会像您期望的那样引发异常,并且很容易以多种方式失败:
require 'rake'
load 'Rakefile'

def invoke(name)
  Thread.new do
    puts Rake::application[name].invoke
  end
end

invoke :make_coffee
invoke :boil_eggs
invoke :empty_trash

(所以不要那样做)

关于ruby - 如何从 ruby 脚本并行启动多个 rake ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5606290/

10-13 01:01