class Sidekiq::Clutch::JobsCollection

Public Class Methods

new(service) click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 4
def initialize(service)
  @service = service
  @jobs = []
  @result_key_index = 0
end

Public Instance Methods

<<((klass, *params)) click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 22
def <<((klass, *params))
  if @service.parallel?
    @jobs << new_parallel_step unless continue_existing_parallel_step?
    @jobs.last['parallel'] << [klass.name, params]
  else
    @jobs << { 'series' => [klass.name, params], 'result_key_index' => next_result_key_index }
  end
end
empty?() click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 10
def empty?
  @jobs.empty?
end
next_result_key_index() click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 31
def next_result_key_index
  @result_key_index += 1
end
raw() click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 14
def raw
  @jobs
end
raw=(jobs) click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 18
def raw=(jobs)
  @jobs = jobs
end

Private Instance Methods

continue_existing_parallel_step?() click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 41
def continue_existing_parallel_step?
  @jobs.last && @jobs.last['parallel_key'] == @service.parallel_key
end
new_parallel_step() click to toggle source
# File lib/sidekiq/clutch/jobs_collection.rb, line 37
def new_parallel_step
  { 'parallel' => [], 'result_key_index' => next_result_key_index, 'parallel_key' => @service.parallel_key }
end