2011-04-09 2 views

답변

16

그것은 더 나은 레이크가 병렬 처리를 처리하게한다면 말이야. "멀티 태스킹"을 사용하여이를 수행 할 수 있습니다. 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 
는 는

+0

정말 솔루션으로 이것을 좋아하지 않습니다. 특정 엔트리 포인트가 빌드를 시작하는 데 사용되는 한 잘 작동합니다. ('-j' 옵션) :'make'를 사용하여 원하는 모든 대상을 선택할 수 있습니다 (예 : 편의성 중 하나를 지정하는 것과 반대되는 특정 라이브러리를위한 명시 적 경로 지정). 빌드 관리자가 추가되었다.) ... 내가'-j' 옵션을 제공하는 한 그것은 병렬로 빌드된다. 이 특정 솔루션은 잠재적으로 필요할 수있는 곳이면 어디에서나 멀티 태스크를 사용할 수있는 한만 작동합니다. –

+0

@BrianVandenberg는'--multitask' 명령 행 옵션을 체크 아웃합니다. 모든 작업이 멀티 태스킹으로 처리되도록합니다. –

3

사용 https://github.com/grosser/parallel

Parallel.each (

레이크에서이 기능을 사용할 수 있습니다 열려 끌어 오기 요청이있다 데이터, : in_processes => 4) {| x | ruby_function (x)}

관련 문제