daha iyi olur Rake'in paralellikle başa çıkmasına izin verirseniz. Bunu "multitask" kullanarak yapabilirsiniz. Rakefile İçinde: Aksi
desc "Start everything."
multitask :start => [ 'mongodb:start', 'haystack:start' ]
Background and source.
, sen Rakefile dışından yapıyoruz varsayarsak, sen Tahmin edebileceğiniz gibi istisnalar atmak olmaz ve kolayca başarısız olabilecek şekilde, böyle korkunç kodu kullanabilirsiniz bir dizi yolla içinde:
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
Bunu gerçekten bir çözüm olarak sevmiyorum. Bu, belirli giriş noktası, yapıyı başlatmak için kullanıldığı sürece iyi çalışır; Ancak, sadece ölü bir atı ('-j' seçeneğini) dövmek için: 'make'le istediğim herhangi bir hedefi seçebilirim (örneğin, belirli bir kütüphane için kolaylıktan birisini belirtmek yerine belirli bir kütüphane için açık bir yol verin) Yapılandırma görevlisini ekledi) ... '-j' seçeneğini sağladığım sürece paralel olarak kurulur. Görünüşe göre bu özel çözüm, 'multitask' kullanmak için potansiyel olarak ihtiyaç duyulan her yerde kullanabileceğiniz bir şeyiniz olduğu sürece çalışacaktır. –
@BrianVandenberg '--multitask' komut satırı seçeneğini işaretleyin, böylece tüm görevlerin çoklu görev olarak ele alınmasını sağlar. –