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