4 개의 레이크 작업을 병렬로 실행하려면 루비 스크립트가 필요합니다.루비 스크립트에서 병렬로 여러 레이크를 실행하는 방법
어떻게하면됩니까? 저는 포크를 사용하고 프로세스를 분리해야한다고 생각하지만 정확한 구문이 필요합니다.
4 개의 레이크 작업을 병렬로 실행하려면 루비 스크립트가 필요합니다.루비 스크립트에서 병렬로 여러 레이크를 실행하는 방법
어떻게하면됩니까? 저는 포크를 사용하고 프로세스를 분리해야한다고 생각하지만 정확한 구문이 필요합니다.
당신은 Multithreading
를 사용하려고 할 수 있습니다
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_threads.html
도 여기에 SO에 대한 논의였다
그것은 더 나은 레이크가 병렬 처리를 처리하게한다면 말이야. "멀티 태스킹"을 사용하여이를 수행 할 수 있습니다. Rakefile 내부 : 그렇지 않으면
desc "Start everything."
multitask :start => [ 'mongodb:start', 'haystack:start' ]
, 당신은 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
는 는
메이크업 비슷한 기능이 있습니다 (그래서 그렇게하지 않음) (-j)하는 당신을 수 있습니다 여러 작업을 병렬로 실행할 수 있습니다. https://github.com/jimweirich/rake/pull/113
및 구현 -j와 레이크의 포크 : https://github.com/quix/rake
사용 https://github.com/grosser/parallel
Parallel.each (
레이크에서이 기능을 사용할 수 있습니다 열려 끌어 오기 요청이있다 데이터, : in_processes => 4) {| x | ruby_function (x)}
정말 솔루션으로 이것을 좋아하지 않습니다. 특정 엔트리 포인트가 빌드를 시작하는 데 사용되는 한 잘 작동합니다. ('-j' 옵션) :'make'를 사용하여 원하는 모든 대상을 선택할 수 있습니다 (예 : 편의성 중 하나를 지정하는 것과 반대되는 특정 라이브러리를위한 명시 적 경로 지정). 빌드 관리자가 추가되었다.) ... 내가'-j' 옵션을 제공하는 한 그것은 병렬로 빌드된다. 이 특정 솔루션은 잠재적으로 필요할 수있는 곳이면 어디에서나 멀티 태스크를 사용할 수있는 한만 작동합니다. –
@BrianVandenberg는'--multitask' 명령 행 옵션을 체크 아웃합니다. 모든 작업이 멀티 태스킹으로 처리되도록합니다. –