Class: SimBack::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/sim_back/queue.rb

Class Method Summary collapse

Class Method Details

.each_chunk_size(num_sims) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/sim_back/queue.rb', line 4

def each_chunk_size(num_sims)
  while num_sims > 0
    raise "bad" if num_sims < 0
    chunk = [max_chunk_size,num_sims].min
    yield(chunk)
    num_sims -= chunk
  end
end

.max_chunk_sizeObject



13
14
15
# File 'lib/sim_back/queue.rb', line 13

def max_chunk_size
  25
end

.queue(num_sims, sim_progress_ops) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sim_back/queue.rb', line 16

def queue(num_sims, sim_progress_ops)
  default = {:num_sims => num_sims, :sims_completed => 0}
  sim_progress_ops = sim_progress_ops.merge(default)

  progress = SimProgress.new(sim_progress_ops)
  progress.save!

  each_chunk_size(num_sims) do |chunk_size|
    Worker.perform_async(progress.id.to_s,chunk_size)
  end

  SummaryWorker.perform_async(progress.id.to_s)
end