lib/s3_website/parallelism.rb in s3_website-1.0.3 vs lib/s3_website/parallelism.rb in s3_website-1.1.0
- old
+ new
@@ -1,14 +1,15 @@
module S3Website
class Parallelism
- def self.each_in_parallel_or_sequentially(items, &operation)
+ def self.each_in_parallel_or_sequentially(items, config, &operation)
if ENV['disable_parallel_processing']
items.each do |item|
operation.call item
end
else
- items.each_slice(DEFAULT_CONCURRENCY_LEVEL) { |items|
+ slice_size = config['concurrency_level'] || DEFAULT_CONCURRENCY_LEVEL
+ items.each_slice(slice_size) { |items|
threads = items.map do |item|
Thread.new(item) { |item|
operation.call item
}
end
@@ -17,8 +18,8 @@
end
end
private
- DEFAULT_CONCURRENCY_LEVEL = 100
+ DEFAULT_CONCURRENCY_LEVEL = 25
end
end