class ChainedJob::StartChains
Attributes
args[R]
array_of_job_arguments[R]
job_arguments_key[R]
job_class[R]
parallelism[R]
Public Class Methods
new(args, job_class, job_arguments_key, array_of_job_arguments, parallelism)
click to toggle source
# File lib/chained_job/start_chains.rb, line 15 def initialize(args, job_class, job_arguments_key, array_of_job_arguments, parallelism) @args = args @job_class = job_class @job_arguments_key = job_arguments_key @array_of_job_arguments = array_of_job_arguments @parallelism = parallelism end
run(args, job_class, job_arguments_key, array_of_job_arguments, parallelism)
click to toggle source
# File lib/chained_job/start_chains.rb, line 9 def self.run(args, job_class, job_arguments_key, array_of_job_arguments, parallelism) new(args, job_class, job_arguments_key, array_of_job_arguments, parallelism).run end
Public Instance Methods
run()
click to toggle source
rubocop:disable Metrics/AbcSize
# File lib/chained_job/start_chains.rb, line 24 def run with_hooks do log_chained_job_cleanup ChainedJob::CleanUpQueue.run(job_arguments_key) next unless array_of_job_arguments.count.positive? ChainedJob::StoreJobArguments.run(job_arguments_key, job_tag, array_of_job_arguments) log_chained_job_start parallelism.times { |worked_id| job_class.perform_later(args, worked_id, job_tag) } end end
Private Instance Methods
job_tag()
click to toggle source
# File lib/chained_job/start_chains.rb, line 56 def job_tag @job_tag ||= Time.now.to_f.to_s end
log_chained_job_cleanup()
click to toggle source
# File lib/chained_job/start_chains.rb, line 67 def log_chained_job_cleanup ChainedJob.logger.info( "#{job_class}:#{job_tag} cleanup" ) end
log_chained_job_start()
click to toggle source
# File lib/chained_job/start_chains.rb, line 60 def log_chained_job_start ChainedJob.logger.info( "#{job_class}:#{job_tag} starting #{parallelism} workers "\ "processing #{array_of_job_arguments.count} items" ) end
options()
click to toggle source
# File lib/chained_job/start_chains.rb, line 47 def options { job_class: job_class, array_of_job_arguments: array_of_job_arguments, parallelism: parallelism, args: args, } end
with_hooks() { || ... }
click to toggle source
rubocop:enable Metrics/AbcSize
# File lib/chained_job/start_chains.rb, line 43 def with_hooks ChainedJob.config.around_start_chains.call(options) { yield } end