Module: ParallelBatchApi::Processor

Included in:
Middleware
Defined in:
lib/parallel_batch_api/processor.rb

Instance Method Summary collapse

Instance Method Details

#parallel_process(env) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/parallel_batch_api/processor.rb', line 8

def parallel_process(env)
  Parallel.map(requests(env), in_threads: thread_size) do |item|
    ActiveRecord::Base.connection_pool.with_connection do
      e = env.deep_dup
      rack = ParallelBatchApi::RackProcessor.new(e, item, @app)
      rack.process
    end
  end
end

#process(env) ⇒ Object



4
5
6
# File 'lib/parallel_batch_api/processor.rb', line 4

def process(env)
  build_response(parallel_process(env.deep_dup))
end

#requests(env) ⇒ Object



18
19
20
# File 'lib/parallel_batch_api/processor.rb', line 18

def requests(env)
  build_requests(env)
end

#thread_sizeObject



22
23
24
# File 'lib/parallel_batch_api/processor.rb', line 22

def thread_size
  ParallelBatchApi.thread || 1
end