From 13dde44c72e8c82e5342d2bbbdf5210af2066795 Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Wed, 3 Oct 2018 16:43:18 +0800 Subject: [PATCH] FIX: Limit concurrent `assets:precompile` to number of available cores. --- lib/tasks/assets.rake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index 4acfff11160..aa1dcadf823 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -151,9 +151,11 @@ def compress(from, to) end def concurrent? + executor = Concurrent::FixedThreadPool.new(Concurrent.processor_count) + if ENV["SPROCKETS_CONCURRENT"] == "1" concurrent_compressors = [] - yield(Proc.new { |&block| concurrent_compressors << Concurrent::Future.execute { block.call } }) + yield(Proc.new { |&block| concurrent_compressors << Concurrent::Future.execute(executor: executor) { block.call } }) concurrent_compressors.each(&:wait!) else yield(Proc.new { |&block| block.call })