class SimBack::Queue

Public Class Methods

each_chunk_size(num_sims) { |chunk| ... } click to toggle source
# 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_size() click to toggle source
# File lib/sim_back/queue.rb, line 13
def max_chunk_size
  25
end
queue(num_sims, sim_progress_ops) click to toggle source
# 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