lib/massive/job.rb in massive-0.3.0 vs lib/massive/job.rb in massive-0.4.0

- old
+ new

@@ -24,13 +24,32 @@ def self.perform(process_id, step_id, job_id) Massive::Process.find_job(process_id, step_id, job_id).work end def self.queue - :massive_job + if split_jobs + :"#{queue_prefix}_#{Kernel.rand(split_jobs) + 1}" + else + queue_prefix + end end + def self.queue_prefix(value=nil) + @queue_prefix = value if !value.nil? + @queue_prefix || :massive_job + end + + def self.split_jobs(value=nil) + @split_jobs = value if !value.nil? + @split_jobs.nil? ? Massive.split_jobs : @split_jobs + end + + def self.cancel_when_failed(value=nil) + @cancel_when_failed = value if !value.nil? + @cancel_when_failed + end + def enqueue Resque.enqueue(self.class, process.id.to_s, step.id.to_s, id.to_s) end def work @@ -99,9 +118,10 @@ ) step.save notify(:failed) + process.cancel if self.class.cancel_when_failed raise e end def increment_processed inc(processed: 1)