Cal*_*leb 5 ruby ruby-on-rails spawn ruby-1.8 ruby-1.8.7
是否有ruby 1.8.7的spawn等价物?
似乎它是在1.9.1 http://apidock.com/ruby/Kernel/spawn中引入的
我需要以下内容才能在ruby 1.8.7中工作:
def run_worker(queue, count = 1)
puts "Starting #{count} worker(s) with QUEUE: #{queue}"
ops = {:pgroup => true, :err => [(Rails.root + "log/resque_err").to_s, "a"],
:out => [(Rails.root + "log/resque_stdout").to_s, "a"]}
env_vars = {"QUEUE" => queue.to_s}
count.times {
## Using Kernel.spawn and Process.detach because regular system() call would
## cause the processes to quit when capistrano finishes
pid = spawn(env_vars, "rake resque:work", ops)
Process.detach(pid)
}
end
Run Code Online (Sandbox Code Playgroud)
小智 0
您可以使用此 gem 在 1.8.7 中实现此目的 - https://github.com/rtomayko/posix-spawn。它不支持“完整”1.9 的 Process::spawn 接口,但您的示例应该只需将 Process::spawn 更改为 POSIX::Spawn::spawn ( https://github.com/rtomayko/posix -spawn#status)。