class Orchestra::Execution::CollectionStep
Public Instance Methods
enqueue_job(element, index) { |result, index| ... }
click to toggle source
# File lib/orchestra/execution.rb, line 142 def enqueue_job element, index operation_execution.thread_pool.enqueue do result = context.execute element yield [result, index] end end
enqueue_jobs(batch, &block)
click to toggle source
# File lib/orchestra/execution.rb, line 136 def enqueue_jobs batch, &block batch.map.with_index do |element, index| enqueue_job element, index, &block end end
invoke()
click to toggle source
# File lib/orchestra/execution.rb, line 129 def invoke batch, output = prepare_collection jobs = enqueue_jobs batch do |result, index| output[index] = result end jobs.each &:wait output end
prepare_collection()
click to toggle source
# File lib/orchestra/execution.rb, line 149 def prepare_collection batch = context.fetch_collection output = [nil] * batch.size [batch, output] end